Изначально я бы предложил вам таблицу productproperty
для моделирования отношений между продуктами и свойствами. Это позволит вам связать многие продукты с определенным свойством.
Однако я не заинтересован в идее сохранения значения рядом с каждым свойством как 1: 1. Лучше всего, если у вас есть таблица propertyvalue
, которая связывает свойство со значением. Затем вы отказались бы от таблицы productproperty
, чтобы иметь более богатую таблицу productpropertyvalue
, которая могла бы полностью описать взаимосвязь между продуктом, его свойствами и их значениями.
Возможно, тогда вы могли бы иметь следующее:
product => (ID (unique key), Name, Description)
property => (ID (unique key), Description)
propertyvalue => (ID (unique key), propertyID (foreign key), value)
productpropertyvalue => (ID (unique key), productID (foreign key), propertyValueID (foreign key))
Конечно, значения свойств могут быть сложными, а не простыми строками или целыми числами, но, надеюсь, это приведет вас в правильном направлении.