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

Свои таблицы на ORM - сущности, запросы, миграции

Не всё ложится в инфоблоки: журналы, очереди, служебные связи удобнее держать в своей таблице. Здесь собраны решения по работе с ними.

Что общего у этих задач

Таблица описывается классом сущности. Имя таблицы и список полей живут в коде, а не в базе, и это описание становится единственным источником правды о структуре.

Своя таблица - это своя ответственность. Индексы, миграции и чистка старых записей ложатся на автора, платформа за них не отвечает.

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

Решения подтемы

Частые вопросы

Когда своя таблица лучше инфоблока?

Когда данных много, они однотипные и не нужны в интерфейсе: журналы, очереди, связи. Инфоблок в таких случаях только замедляет.

Кто создаёт таблицу на боевом сайте?

Класс установки модуля. Ручное создание таблицы означает, что на новом стенде её не будет.

Нужны ли индексы?

Обязательно, по полям отбора и сортировки. Таблица без индексов работает быстро ровно до первой сотни тысяч строк.

Как менять структуру потом?

Скриптом обновления модуля, который меняет и таблицу, и описание сущности. Правка только в коде оставляет базу прежней.

Связанные темы

Первоисточники