Есть ли у кого-нибудь опыт хранения пар ключ-значение в базе данных?
Я использую этот тип таблицы:
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 . . .
)
Это будет проще и быстрее запрашивать, но не имеет расширяемости первого подхода. Любые советы?