Привет читатель, на связи Владимир, техлид команды бэкенд-разработки в fashion бренде Befree. За время жизни и развития нашего интернет-магазина накопилось некоторое количество любопытных, на наш взгляд, решений, и появилось желание начать делиться этими решениями с сообществом. Начнем с рассказа о каталоге товаров и о том как этот каталог со временем преображался.
Рубрика «eav»
Ускоряем каталог интернет-магазина с помощью Elasticsearch
2025-03-30 в 17:15, admin, рубрики: eav, ecommerce, elasticsearch, php, каталогизацияSQL HowTo: разные варианты работы с EAV
2022-03-29 в 7:50, admin, рубрики: eav, ERP-системы, explain.tensor.ru, group by, include, intersect, join, postgresql, sql, sql tips and tricks, Администрирование баз данных, Блог компании ТензорСоблазн использовать модель EAV (Entity-Attribute-Value) при организации структуры БД весьма велик, особенно когда предметная область заранее плохо известна (или разработчик просто не хочет в нее углубляться). Это ведь так удобно - создать "универсальный" способ описания характеристик объектов, который больше не потребует доработок базы ни при появлении новых типов объектов, ни при возникновении новых атрибутов...
Однако, за любую универсальность приходится платить сложностью и производительностью запросов - так что Читать полностью »
Замена EAV на JSONB в PostgreSQL
2019-11-09 в 21:51, admin, рубрики: eav, jsonb, postgresql, sql, архитектура базы данных, базы данных, хранение данныхTL; DR: JSONB может значительно упростить разработку схемы БД без ущерба производительности в запросах.
Введение
Приведем классический пример, наверное, одного из старейших вариантов использования в мире реляционных БД (база данных): у нас есть сущность, и необходимо сохранить определенные свойства (атрибуты) этой сущности. Но не все экземпляры могут имеют одинаковый набор свойств, к тому же в будущем, возможное добавление ещё свойств.
Самый простой путь решения этой проблемы – это создание столбца в таблице БД для каждого значение свойства, и просто заполнять те, которые нужны для определенного экземпляра сущности. Отлично! Проблема решена… до того момента, пока ваша таблица не содержит миллионы записей и у вас не возникнет необходимость добавить новую запись.
Рассмотрим паттерн EAV (Entity-Attribute-Value), он встречается достаточно часто. Одна таблица содержит сущности (записи), другая таблица содержит имена свойств (атрибутов), а третья таблица связывает сущности с их атрибутами и содержит значение этих атрибутов для текущей сущности. Это дает вам возможность иметь разные наборы свойств для разных объектов, а также добавлять свойства “на лету”, не изменяя структуры БД.
