tommy-vercetti
@tommy-vercetti
Symfony/Golang

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

Дали на оценку проект, где админ может создавать дополнительные атрибуты и добавлять их в экраны пользователей.
Пользователи могут добавлять эти атрибуты к сущностям, а также делать фильтрацию и сортировку по ним.

По требованиям заказчика проект нужно реализовать на Symfony. Насчет БД есть сомнения.

Есть несколько вариантов:
  • EAV. Подозреваю, будет проблема с производительностью и поддержкой всего этого. Возможно, стоит добавить Elasticsearch для фильтрации и поиска.
  • Использование NoSQL решений. Не опыта в качестве постоянного хранилища (только для кеширования)
  • Кто-то предлагает использовать Postgres hstore

Хоть и у меня нет опыта с NoSQL (Mongo и тд), я склоняюсь к этому варианту. Хотелось бы услышать обоснованный аргумент за/против какого-то подхода. Спасибо.

5e9fbfc38e0f3109446840.png
  • Вопрос задан
  • 94 просмотра
Решения вопроса 2
ИМХО Я бы выбрал PostgreSQL.
Т.к. в нем не плохо реализована работа с json.
Но возможно надо будет прикрутить Elastic Search, для полнотекстового поиска.
Ответ написан
@mayton2019
Ent. Software engineer. Oracle. SQL. BigData.
При данной постановке - подходит почти любая DBMS. Особенно если у вас - тотечные (OLTP) запросы. Типа взять документ по ID.

Модель EAV - хороша только для реляционных систем. И только если вы не собираетесь делать по ней отчоты или дата-анлитику. Там она тихо и помрёт от группировок и вращения на 90 градусов. Или вы будете делать экспорт из нее в другие модели просто чтоб было удобнее работать.

Берите смело Postgres и складывайте ваши множественные атрибуты в JSONB-поле. Их там можно хорошо индексировать и делать достаточно приемлемой скорости поиски.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
...а ну-ка пыль сдуй отсюда...
Spinxsearch / Manticoresearch MVA

быстро, но не сильно наглядно
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы