Сведения о вопросе

nikolya

18:59, 7th August, 2020

Теги

Базы   данных   EAV    

Чем плохо EAV решение для интернет-магазина?

Просмотров: 332   Ответов: 3

Столкнулся с проблемой когда есть разные типы товаров (одежда и телевизоры имеют мало одинаковых параметров). Вижу 3 решения проблемы
  • Serialized LOB самый простой, но нет поиска
  • EAV — не сложная реализация, нет проблем при обновлении базы. В общем вроде то. Но ТУТ пишут что не оч.
  • Ну и самый сложный и дорогой (по времени) вариант — разделения товаров на разные таблицы



Собственно есть мысли? Как сделать удобно для меня как программиста, чтобы не переделывать все и чтобы людям было удобно?



  Сведения об ответе

dumai

06:28, 22nd August, 2020

Большинство недочетов, указанных на stackoverflow, исправляется грамотно построенной бизнес-логикой. В этом можно убедиться на примере того же Magento.

Единственное, что стоит отметить — при переходе на EAV нужно оценить, стоит ли игра свеч.

Если структура категорий и/или типов товаров относительно постоянна и редко изменяется, то имеет смысл использовать flat tables (то, что у вас указано третьим вариантом), т.к такая схема намного производительнее и проще в реализации.

Если же структура каталога очень динамична, то стоит использовать EAV, т.к. в этом случае будут сэкономлены ресурсы, которые тратятся на alter/drop-запросы в flat tables. Но при этом нужно будет хорошо продумать систему кеширования, т.к. удельная сложность выборки данных по одной сущности ощутимо больше, чем в других схемах.

Сам очень давно выбрал для себя EAV и еще ни разу не пожалел об этом.


  Сведения об ответе

9090

08:11, 19th August, 2020

Самое простое решение — использовать документо-ориентированные БД, типа MongoDB/CouchDB.


  Сведения об ответе

appple

19:53, 22nd August, 2020

Magento отказалась от использования EAV в последних версиях. Перешли на обычный flat.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться