Какую структуры базы выбрать для каталога?

Хочу сделать каталог продуктов и у меня появился вопрос:

Какую выбрать структуру базы для этого?

Если товары могут быть разных типов с разными характеристиками. Например, телевизоры и холодильники.
Ожидаемое количество разных типов товаров в моём случае составит около 10-20. У каждого типа будет 20-40 характеристик. Количество товаров каждого типа порядка 10. Продавцов этих товаров будет не более 500.

Характеристики меняются редко, но для разных типов товаров наборы характеристик могут сильно отличаться.

Изучая тему я понял, что варианта примерно 2:

Вариант 1 (гибкий). Все характеристики в одной таблице (модель EAV).
Вариант 2. Для каждого типа товара делать свою таблицу со своими наборами характеристик. В этом случае надо плодить новые таблицы при появлении нового типа товара.

Ещё встречался вариант с использованием JSON для хранения характеристик в одном столбце.

Скорее всего, задача по проектированию базы типовая, и, возможно, есть какое-то красивое готовое решение. Только я пока его не нашёл.

Интересно, как такую проблему решают взрослые, например. Яндекс.Маркет?
Какова структура БД у них?

Может ли тут помочь ElasticSearch?

---

На проекте сейчас используется laravel + mysql.
Может есть что-то готовое для этой связки?
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 2
2ord
@2ord
Ещё встречался вариант с использованием JSON для хранения характеристик в одном столбце.
Вот этот вариант очень гибкий. Версии 5.7+ поддерживают JSON. 8-ка хороша. Если правильно проиндексированы необходимые поля JSON, то работает быстро.
Ответ написан
Комментировать
@asd111
Первый вариант в маленьких магазинах. Второй в больших наподобие юлмарта. В Яндекс маркете скорее всего монга или касандра потому что им важна устойчивость базы к падению.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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