схема базы данных продуктов и вариантов mysql

Я решаю проблему, как хранить продукты с их вариантами в базе данных.
Моя текущая система выглядит так:

PARAMETERS - id_parameter (some parameter value - i.e. size XXL),...
PRODUCTS_PARAMTERS - id_product, id_paramter
CATEGORIES - id_category,...
PRODUCTS_CATEGORIES - id_product, id_category
FILES - id_file,...
PRODUCTS _FILES - id_file, id_product
PRODUCTS - id_product, description, price, vat, is_variant (1 or 0, if 1, product is variant), main_product(id is variant, here is stored main products id)

В этой системе, если товар не вариант, он не будет заполнен только ценой. У этой системы есть свои плюсы, поэтому мне не нужно будет так много редактировать код и функции … минусы, я думаю, по размеру. Поскольку будет много лотов или строк — основные продукты и варианты, поэтому запрос должен проверить, т.е. 10 000 строк …

Теперь я немного подумал об этом, и у меня появилась эта идея:
хранить основные продукты и варианты в отдельных таблицах. Затем мне нужно будет отредактировать таблицы сопоставления — я могу добавить туда столбец, в котором я укажу, если id_product из таблицы вариантов товаров или из таблиц основных товаров. Или мне нужно будет создать другие таблицы отображения — в одной таблице отображения я буду хранить параметры для основных продуктов, а во второй я буду хранить параметры для вариантов продуктов …

Что вы думаете об этих 2 решениях? Какой из них будет лучше? Для меня важнее всего скорость — особенно при фильтрации продуктов …

Спасибо за ваши мнения или идеи, как это сделать.

0

Решение

Если несколько концепций объединяются в одну таблицу, это, как правило, не очень хорошая идея. Если у вас есть n продуктов и m вариантов, то всякий раз, когда вы собираетесь фильтровать только по продуктам, ваш запрос должен обрабатывать n * m записей. Если они разделены, то этот вид запроса будет искать только из n записей. Также, если вы сохраните вариант в описании, то в случае изменения имени вам придется обновить описания. Читайте о нормальных формах, они вам очень помогут.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]