Как бы я разработал таблицы для соответствующей системы, выполнив что-то вроде этого:
У нас есть X продуктов, которые могут иметь свойства Y. Количество свойств может варьироваться от продукта к продукту, и два продукта не должны иметь схожие свойства.
Моя цель номер один - взять один товар и найти наиболее похожий товар.
Обычно я бы сделал что-то вроде этого:
create table products
(
id serial not null primary key,
name varchar(40)
)
create table properties
(
id serial not null primary key,
name varchar(40)
)
create table product_properties
(
product_id int not null,
property_id int not null
)
Единственный способ, которым я могу придумать, - это просмотреть все продукты, получить их свойства в цикле и сравнить с исходным продуктом. Но это не кажется очень эффективным.