Есть ли у кого-то опыт хранения пар ключ-значение в базе данных?
Я использовал этот тип таблицы:
CREATE TABLE key_value_pairs (
itemid varchar(32) NOT NULL,
itemkey varchar(32) NOT NULL,
itemvalue varchar(32) NOT NULL,
CONSTRAINT ct_primarykey PRIMARY KEY(itemid,itemkey)
)
Тогда, например, могут существовать следующие строки:
itemid itemkey itemvalue
---------------- ------------- ------------
123 Colour Red
123 Size Medium
123 Fabric Cotton
Проблема этой схемы в том, что синтаксис SQL, необходимый для извлечения данных, довольно сложен.
Было бы лучше просто создать серию столбцов ключ / значение?
CREATE TABLE key_value_pairs (
itemid varchar(32) NOT NULL,
itemkey1 varchar(32) NOT NULL,
itemvalue1 varchar(32) NOT NULL,
itemkey2 varchar(32) NOT NULL,
itemvalue2 varchar(32) NOT NULL,
. . .etc . . .
)
Это будет проще и быстрее запрашивать, но не обладает расширяемостью первого подхода.
Любой совет?