@bx-coder

Пользовательские поля для моделей Laravel. Как спроектировать БД?

Допустим есть у нас некоторые модели в нашем проекте: Статья, новость, комментарий, пользователь. Так вот возникла необходимость добавления к этим сущностям пользовательских полей (аналог Пользовательские поля в Битрикс). Полей у каждой сущности может быть много и разных типов(строка, число, список, файл, булеан).

Как лучше спроектировать БД под такой кейс чтобы максимально использовать "отношения" Eloquent и избегать "ручных" запросов?
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 3
zvermafia
@zvermafia
WebDev
Не знаю как у битрикс это реализовано, но думаю что вам подойдет Entity–attribute–value model (EAV).
Ответ написан
Комментировать
Может быть для таких задач лучше подойдет NoSQL? Например с Mongo попробовать, будет не так больно?

В целом такая архитектура очень слабая и плохо масштабируемая.
Ответ написан
Комментировать
@vism
если у вас постгресс - jsonb
Если мускуль - вроде тоже есть что-то, но не знаю.

jsonb в постгресс работает так же быстро как и nosql базы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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