@flammerman
Web Developer / И фронт и сервер

Как можно спроектировать базу данных интернет магазина с вариантами товаров?

Доброго времени суток.

Может кто подсказать схему БД онлайн шопа с моделью EAV и возможностью комбинировать характеристики товаров в дополнительные сущности, которые могут иметь отдельную цену.

Система простая донельзя, но что-то туплю. Допустим у нас есть размеры товаров (колец) 15,16,17,18,...25 пускай, фишка в том что они могут иметь разную цену (расход драг.металла и другие причины ведомые только производителю). Конечно можно тупо создать одну дополнительную таблицу, где грубо прописать товарИД, размер, цена, это круто, но что делать если нужно скомбинировать еще с любой другой характеристикой, допустим с текстовым полем "камни". Уже получается другой вариант: Размер, драг.камень, цена.

Магазину 4 года, и сделан в комбинации MODx EVO + костыли. На практике такие варианты будут знаю точно, работа не пропадет даром. И да я понимаю, что делать очередной шоп на Laravel для многих не имеет смысла, проще скачать opencart или битрикс купить, но там будут другие заморочки (изначально хотели на opencart поставить, не подошел), от этого никуда не дется.

В гугле не забанили, гуглю как могу, но в основном простые схемы попадаются. Либо все характеристики вообще в одной таблице products, либо модель EAV, но при этом нет вариантов с разными ценами. В общем нужна помощь, консультация, моральная поддержка =). Ссылка на мою схему: www.laravelsd.com/share/ZjzprC (если что ее можно форкнуть и править если кому надо). Ее можно не брать за основу, просто набросал.
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
грубо говоря:
products (id, name) - товары
features (id, name) - характеристики
feature_values (id, feature_id, value) - значения характеристик
product_skus (id, product_id, name, price, qty) - артикулы
sku_features (sku_id, feature_id, feature_value_id) - характеристики артикула
Ответ написан
Ваш ответ на вопрос

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

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