Задать вопрос
@phpcoder81

Как реализовать структуру бд в интернет магазине?

Мужики помогите советом. Не пойму, как грамотней реализовать характеристики у товаров. Есть инет магазин одежды и пока он был магазином одежды проблем не было))

Таблицы MYSQL (innodb):
1) products (id, name, price...)
2) attribute (id, id_product, id_color, id_size) //id_color и id_size могут быть NULL.
3) colors (id, name)
4) sizes (id, name)

Я давно, на других сайтах, практикую паттерн, по моему называется EAV. Там легко прикрутить любой параметр к товару. А у меня 2-я таблица всю гибкость съела.

Новая логика магазина такая:
1) у товара может и не быть параметра (EAV подходит)
2) у товара может быть цвет или размер по отдельности (EAV подходит)
3) Некоторые параметры должны быть в связке, например цвет-размер) а вот тут уже ломается EAV (или требует пересмотра структуры) с этим пунктом как раз загвоздка((

Моя таблица attribute объединяет цвет и размер, но если параметров будет больше? Можно конечно сделать 5-ю таблицу attribute_items в неё добавлять параметры, а таблицу attribete использовать как всязку атрибут-группа. Но по моему запутано. Может у вас есть мысли, как в паттерн EAV внедрить связи между параметрами и уйти от моей 2-й таблицы attribute.
  • Вопрос задан
  • 249 просмотров
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
@hubramubr
Вы еще на этапе хранения задумались....
А каково будет по множественным фильтрам делать отбор?
А с тем, чтобы показывать покупателю, а сколько товаров после применения одного или двух фильтров? И с отключением после этого ненужных (невозможных) фильтров?
Зачем вы вообще это делаете на sql?
https://habrahabr.ru/post/261137/
или
https://habrahabr.ru/post/186572/
или
https://habrahabr.ru/post/132118/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы