В простейшем случае структура базы данных будет выглядеть следующим образом:
-- Create table create table entity ( entity_id number, name varchar2(50) ); -- Create/Recreate primary, unique and foreign key constraints alter table entity add constraint xpk_entity_id primary key (ENTITY_ID);Таблица Entity хранит сами сущности - товары. В качестве полей указываем общие свойства сущностей, таких как Название товара
-- Create table create table attribute ( attribute_id number, attribute_name varchar2(50), attribute_type varchar2(10), decriptions clob ); -- Create/Recreate primary, unique and foreign key constraints alter table attribute add constraint xpk_attribute_id primary key (ATTRIBUTE_ID);Таблица Attribute хранит различные свойства товаров - атрибуты. В качестве полей указываем название атрибута, тип.
-- Create table create table value ( attribute_id number, entity_id number, string_value varchar2(100), number_value number );таблица value - для хранения значений атрибутов, а также для связи многие ко многим между товарами и их атрибутами.
Реализация разных типов данных может быть реализована различными способами. Например вместо одного поля value можно создать разные поля под разные типы данных: string_value, number_value и использовать нужное исходя из типа атрибута из таблицы attribute.
Более подробная информация по паттерну