Связи между таблиц

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

Как работают связи

Любые операции (добавление, изменение, удаление) в таблицах со связями осуществляются в 2 этапа.
  1. Выполняется непосредственно сама операция
  1. Обновляются все связи и связанные колонки
С точки зрения базы данных это 2 отдельных этапа. Но с точки зрения операций сценариев это одна операция, которая завершается, когда все необходимые действия со связями были завершены. Поэтому можно быть уверенным, что когда операция в сценарие завершена, все данные в таблицах корректно связаны.

Производительность

Creatium Max обеспечивает максимально возможную скорость чтения данных, что положительно сказывается на скорости открытия страниц, работе фильтров и сценариев.
У вас может быть таблица с большим количеством ссылок, лукапов и роллапов, а работать она будет так же быстро, как если бы все данные в ней были не динамическими, а статическими.
Обеспечивается это за счет того, что все действия по переносу данных из связанных таблиц осуществляются на этапе создания и изменения записей, а не на этапе чтения данных.
Обратная сторона этого подхода, это более медленные изменения в таблицах, если они затрагивают много связанных данных.
Рассмотрим на примере. Допустим, у вас есть таблица “Авторы”, в ней колонка “Имя”, и в соседней таблице “Статьи” помимо ссылки “Автор статьи” есть лукап-поле “Имя автора”. Вы меняете имя автора, который написал 20 статьей. Движку базы данных нужно будет пойти и обновить имя автора во всех связанных записях, что займет больше времени.

При поддержке Notaku