2015-01-24 2 views
0

Я решаю проблему, как хранить продукты с ее вариантами в базе данных. Моя текущая система выглядит следующим образом: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 строк ...

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

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

Благодарим вас за ваши мнения или идеи, как это сделать.

+0

Попробуйте. И если вы столкнулись с проблемой, спросите еще раз. –

+0

Спасибо за помощь @UweAllner – hanis

ответ

1

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

+0

Спасибо @ LajosArpad. Надеюсь, поможет – hanis

+0

Добро пожаловать и удачи –

 Смежные вопросы

  • Нет связанных вопросов^_^