Как правильно спроектировать параметры товаров для категорий в интернет-магазине? Добрый день.
Интересует мнение и опыт по проектированию интернет-магазина.
Бриф:
Каждый товар принадлежит к определенной категории.
Следовательно у каждого товара есть свои особые атрибуты в зависимости от категорий.
Например:
Шины: ширина, высота, диаметр, сверловка.
Одежда: размер, цвет.
Каждый атрибут может быть выбран жестко из select.
Реализация:
1) Динамическая
Имеем две таблицы
item_category_property (id,category,name, values(сер. массив из значений для select/checkbox)
item_property_value (id, item_category_property, item, values
Плюс - легко сгенерировать из админки атрибуты для каждой категории.
Минусы - при больших объемах тупняки в выборках. Нельзя заточить интерфейс в административной части для более удобного использования
2) Статика
Одна таблица item_category_XX (Где xx - id категории). Будем хранить уже заранее определенные типы данных, что позволит нам удобное проектирование интерфейса и написание бизнес логики.
Минусы - при n-ом количестве категории для каждой категории неудобное создание таблицы ( придется на уровне БД самостоятельно руками)
Как хранить связи на программном уровне, чтобы делать JOIN?
Категория может быть дочерней, следовательно у родительской связи тоже есть параметры общие.
Есть ли какие-то универсальные варианты?

21 Авг 2019 в 07:08
174 +1
1
Ответы
1

Для проектирования параметров товаров для категорий в интернет-магазине можно использовать следующий подход:

Создание таблицы для категорий (categories) с полями id, name, parent_category_id (для определения родительской категории).

Создание таблицы для атрибутов товаров (attributes) с полями id, name.

Создание таблицы для соответствия атрибутов категориям (category_attributes) с полями id, category_id, attribute_id.

Создание таблицы для значений атрибутов товаров (attribute_values) с полями id, attribute_id, item_id, value.

Таким образом, каждый товар связан с определенной категорией, а каждая категория имеет определенный набор атрибутов. Далее, для каждого товара можно добавить значения атрибутов.

Для реализации JOIN запросов, можно использовать связь между таблицами по их внешним ключам (например, category_id в таблице товаров с id в таблице категорий). Также, для получения атрибутов категории и их значений можно использовать соединение таблиц category_attributes и attribute_values по соответствующим id.

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

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир