Перейти к содержимому

Поле JSONB

Поле JSONB (помечено как jsonb в интерфейсе) используется для хранения неструктурированных или полуструктурированных наборов данных, таких как объекты {...} или массивы [...].

В отличие от стандартного текстового поля, это поле использует формат JSONB (Binary JSON). Это означает, что база данных проверяет, является ли ввод допустимым JSON перед сохранением, и хранит данные в разложенном бинарном формате, позволяющем эффективное индексирование и запросы к определённым ключам в структуре.

При настройке поля JSON в правой боковой панели доступны следующие настройки:

  • Имя: Уникальный системный идентификатор поля (например, metadata, settings, api_response).
  • Значение по умолчанию: Допустимый JSON-объект или массив для присвоения, если данные не предоставлены (например, {"theme": "dark"} или []).
  • Описание: Необязательное текстовое поле для описания схемы или назначения JSON-данных.
  • Обязательное: Если включено, запись не может быть сохранена без предоставления допустимых JSON-данных.
  • Уникальное: Если включено, гарантирует, что никакие две записи не имеют точно такой же структуры и содержимого JSON.

Совет: Почему JSONB? Мы используем тип данных JSONB вместо стандартного JSON. Хотя запись немного медленнее, JSONB значительно быстрее при запросах. Он поддерживает индексирование (GIN), что позволяет выполнять высокопроизводительный поиск и фильтрацию непосредственно по ключам и значениям в JSON-объекте.

  • Конфигурация/Настройки: Хранение пользовательских предпочтений, которые могут часто меняться.
  • Данные внешних API: Хранение сырых ответов от сторонних интеграций.
  • Динамические атрибуты: Детали продукта, которые сильно различаются между категориями.
  • Списки: Хранение простых массивов строк или чисел.