Компромисс между идентификатором и ссылками на ключи - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть следующие таблицы для хранения товара с его атрибутами:

Атрибуты

id name        
1  color       
2  material   

Значения атрибутов

id attribute_id value    
  1     1       black    
  2     2       plastic

Продукты

id  name     attributes
 1  Laptop   {1:"1",2:"2"}

Атрибут в таблице продуктов ссылается по id (1).Но на него также может ссылаться имя атрибута:

{"color":"black"}

Хотя это нарушает целостность данных, оно позволяет загружать продукты с атрибутами, которых еще нет в БД.Они могут быть добавлены позже, а затем продукты могут быть отфильтрованы по ним.Я прошу совета о том, как использовать преимущества обоих подходов?Я хочу сослаться на существующие атрибуты по идентификаторам или именам, а все остальные по именам - в таблице «Продукты».

...