Вот простой пример использования:
У меня есть сущность posts и теги в моем приложении.Здесь я хочу выполнить два типа запросов:
- выборка сообщений для тега
- выборка тегов для сообщения
Два вариантаЯ могу пойти с тем, что
- имеет отдельные таблицы для сообщений и тегов.Затем выполните объединение
- и добавьте теги в виде столбца jsonb в таблицу моих сообщений.при попытке получить сообщения для тега (природа), я могу сделать
@> "nature"
и упорядочить по дате создания сообщения.Когда я хочу получить теги для сообщения, мне даже не нужно ничего делать.
Для меня JSONB чувствует себя намного проще в использовании и рассуждениях (пришедших из мира JS).Но я не могу нарисовать картину компромисса производительности, если бы я пошел на этот подход.Я понимаю, что JSOB будет намного быстрее, когда мне не придется фильтровать / искать по самим объектам.Но что, если мне придется искать атрибут JSONB в таблице сообщений, содержащей 1M записей, каждая с, скажем, 20 или около того тегами?Будет ли объединение в этом случае более эффективным?