Структура таблицы товаров для хранения информации о товарах из разных областей - PullRequest
0 голосов
/ 16 мая 2018

Я создаю приложение, которое требует поддержки различных категорий продуктов (например, в моде, электронике, автомобилестроении, бакалее и т. Д.), Поэтому, очевидно, для продуктов в каждой области (и даже для их подкатегорий). ), свойства продукта будут варьироваться от категории к категории.

Пример:

Продукты в области Fashion , такие как Джинсы, рубашки и т. Д. , которые имеют такие свойства, как размер, цвет, тип, тип материала и т. Д. в то время как продукты в Electronics могут быть похожи на мобильные телефоны, ноутбуки и т. д. , которые могут иметь такие свойства продукта, как процессор, память, память, размер, цвет и т. д.

Мой вопрос касается того, как хранить такую ​​информацию наиболее обобщенным и эффективным способом?

Что я подумал о решении:

Я думал о создании трех таблиц для поддержки этой информации.

  1. products таблица:

Эта таблица будет содержать все продукты и их категории в форме вложенного набора , так что каждый родительский элемент будет действовать как категория и каждый лист будет действовать как продукт .

Наряду с этим эта таблица будет содержать метаинформацию о продукте (, такую ​​как название, цена покупки, цена продажи, артикулы и т. Д., Которые будут общими для любого вида продукта ). Вероятная Структура таблицы этой таблицы выглядит так:

id(PK), 
client_fk(FK to clients), 
parent_id(for nested-sets), 
lft(for nested-sets), 
rgt(for nested-sets), 
depth(for nested-sets), 
name(meta), 
sku(meta), 
purchasing_price(meta), 
selling_price(meta), 
created_at, 
updated_at
  1. Другие две таблицы будут работать как структура модели EAV.

products_props таблица:

В этой таблице будут храниться все возможные свойства для любого продукта (из любой категории), такие как размер, цвет, процессор, память, память и т. Д. с их метаданные как описание, тип ввода, детали и т. д. Структура таблицы для этой таблицы может быть

id(PK), name, label, description, input_type, input_details, created_at, updated_at

  1. products_props_data таблица :

Эта таблица будет содержать значения для всех свойств, которыми обладает продукт. Структура таблицы для этой таблицы может быть:

id(PK), product_prop_fk(FK to products_props), product_fk(FK to products), value, created_at, updated_at

Читает на эту информацию будет гораздо больше, чем вставляет, обновляет или удаляет .

Вопросы:

  1. Я иду по правильному пути?
  2. Эффективно ли?
  3. Есть ли другой путь?
  4. Советы / предложения для достижения того, что я пытаюсь.
  5. Как это делает известная электронная коммерция? как Amazon, Flipkart, eBay?

1 Ответ

0 голосов
/ 16 мая 2018
  1. Кажется, хорошо
  2. Пока не беспокойся об этом
  3. Возможно
  4. Если я использую EAV, мне нравится создавать разные таблицы для разных типов типов атрибутов, поэтому у меня будет таблица для целочисленных атрибутов, таблица для десятичных атрибутов и таблица для строк
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...