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