TransWikia.com

Архитектура БД MySQL для фильтра товаров по параметрам (для интернет-магазина)

Stack Overflow на русском Asked on January 25, 2021

Хотим создать интернет магазин с возможностью фильтрации списка товаров по параметрам (наподобие того, как это делается на сайтах DNS ил МВидео). Условия следующие:

  1. Основные группы товаров – сварочные аппараты, электроинструмент, генераторы, стабилизаторы и т. п. Общее количество товаров с запасом, я думаю, не будет выше 5000.

  2. У каждой категории есть свои параметры (чем уже категория – тем больше параметров). Например, имеем родительскую категорию "Сварочные аппараты", в которую входят дочерние категории "Полуавтоматическая сварка", "Ручная дуговая сварка", "Плазменная резка". У категории "Сварочные аппараты" есть общие параметры: потребляемая мощность, мин. сварочный ток, макс. сварочный ток, продолжительность включения. Эти параметры есть У ВСЕХ аппаратов из дочерних категорий. Далее переходим к товарам категории "Полуавтоматическая сварка". Общий список дополнится частными параметрами: макс. диаметр проволоки, диаметр катушки, кол-во роликов подающего механизма и т. д. Аналогично и по остальным дочерним категориям (у каждой свои частные характеристики).

  3. Логика вывода фильтров следующая: вывести фильтры по тем характеристикам, которые есть у всех товаров на странице. Например, если вывести дочернюю категорию "Полуавтоматическая сварка", то фильтр будет идти по параметрам потребляемая мощность, мин. сварочный ток, макс. сварочный ток, продолжительность включения, макс. диаметр проволоки, диаметр катушки, кол-во роликов подающего механизма и т. д. Т. е. список будет включать и общие, и частные параметры. Однако если мы выводим на сайте товары одновременно по нескольким дочерним категориям внутри одной родительской "Сварочные аппараты", то фильтры будут выводиться лишь по общим параметрам (т. к. у одних аппаратов есть характеристики, которых нет у других). Ниже картинка с примеромфильтры родительской категории
    введите сюда описание изображения

  1. Фильтры разных дочерних категорий пересекаются только в рамках общей родительской категории, как в предыдущем пункте. Т. е. на сайте не будет такого, что одновременно нужно отобразить фильтры по нескольким самым верхним родительским категориям. Например, "Сварочные аппараты", "Электроинструмент", "Генераторы" и т. д.

  2. Набор характеристик для каждой категории известен заранее. Скорее всего, будет использоваться СУБД MySQL.

Собственно вопрос: каким образом организовать БД под эти условия? Можно хотя бы общее направление, чтобы понимать где искать.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP