search
menu
person

NEWS AND UDATES


14:55
EAV структура базы данных
EAV - означает Entity, Attribute и Value

Чаще всего используется для добавления характеристик товаров в интернет магазинах

Entity - товары, категории, покупатели и заказы
Attribute - атрибуты, как наименование, цена, статус и пр.
Value -  конкретное значение атрибута.

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

Плюсы:
  • Масштабируемость без модификации базы данных
  • Получение меньшего объема данных если нужна только часть информации

Минусы:
  • Сложность вывода в шаблон в виде отличного от простого списка
  • Низкая скорость работы из-за фрагментации и большого количества запросов для сборки информации об одном товаре
Готовые решения для django
Если заказчик желает сам дополнять объекты недвижимости какими-либо атрибутами, то да, в том или ином виде от EAV не уйти.
Если же заказчик заинтересован в развитии системы таким образом, когда помимо атрибутов, изменяется и логика работы (изменяются, удаляются и добавляются операции и т.п.), то лучше убедить его в том, что EAV использовать не стоит. 

Альтернативные модели проектирования реляционных баз данных
  • Single Table Inheritance;
  • Class Table Inheritance;
  • Concrete Table Inheritance.
либо использовать nosql базы данных такие как 
  • mongodb
  • couch
  • redis
так же возможно использовать hstore (https://github.com/jordanm/django-hstore)
но данный проект привязан к postresql

Для сайтов со сложным поиском и фильтрацией возможно стоит использовать поисковый движок Solr который предоставляет теже возможности.
Просмотров: 2219 | Добавил: django | Рейтинг: 0.0/0
Всего комментариев: 0
dth="100%" cellspacing="1" cellpadding="2" class="commTable">
Имя *: Email:
Код *: