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

Создание связи

Связи между таблицами создаются при помощи JOIN полей.

JOIN поля создаются в меню Структура таблицы.

Без имени.png

Существует два способа создания JOIN поля:

Без имени.png

Без имени.png

Помимо уже названных полей в окне создания можно заполнить следующие поля:

image.png

image.png

image.png

В имени поля можно указывать только латиницу (только нижний регистр), цифры и подчеркивание.

 

НЕ включайте опцию Использовать данную связь при редактировании поля для нескольких связей одного и того же поля текущей таблицы. НЕ включайте данную опцию для JOIN полей второго уровня, так как у такого поля нет физического поля, для его редактирования в текущей таблице.

НЕ включайте опцию Создавать внешний ключ для связи для нескольких связей одного и того же поля текущей таблицы. НЕ включайте данную опцию для JOIN полей второго уровня.

После заполнения всех обязательных полей (Наименование, Заголовок в интерфейсе, Связываемая таблица, Алиас, Поле связываемой таблицы) нажмите на кнопку Сохранить. Поле появится в таблице Структура.

Если вы хотите создать несколько связей с одной и той же таблицей, добавьте уникальное для таблицы число в алиасе. Например: leads, leads2...

Записи в таблицах имеют кликабельные ссылки на записи, на которые они ссылаются. Поля с ссылками выделены синим цветом.

image.png

При выключении активности физического поля, связанные с ним RELATION поля продолжат отображаться в данных таблицы.

Так на скриншоте выше поле Лид содержит ссылку на соответствующую запись в системной таблице лидов, а поле Название ссылку на соответствующую запись о товаре.

image.png

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

Без имени.png

Если что-то настроено некорректно, то при просмотре или редактировании записей таблицы может возникнуть ошибка 500. Попробуйте отключить лишние опции Использовать данную связь при редактировании поля и Создать внешний ключ, проверьте алиасы и имена полей. Если не получается исправить проблему, обратитесь в поддержку Metabot.

Уровни вложенности

Связанные поля имеют неограниченный уровень вложенности. Рассмотрим на примере:

Так будут выглядеть настройки данного поля:

image.png

В Поле текущей таблицы записывается не физическое поле таблицы, а поле доставаемое из таблицы лидов. В таких многоуровневых JOIN полях обязательно должны быть выключены опции Использовать данную связь при редактировании поля и Создать внешний ключ.

Пример

1. В вашем боте есть таблица заказов orders.

image.png

2. Вам требуется узнать id персоны лида через эту таблицу. Чтобы это сделать можно связать поле lead_id с системной таблицей лидов.

3. Для этого создается JOIN поле lead с типом RELATION описывающее связь между полем lead_id таблицы заказов и полем id в системной таблице лидов.

image.png

4. Теперь при обращении из JS методов вы можете обратиться к данным лида напрямую из таблицы заказов.

Со связываемыми полями так же можно работать с помощью JS методов. Все методы и их описание вы можете посмотреть в Справочнике по функциям JS



Версия #3
Ирина Петрова создал 29 April 2025 07:26:05
Ирина Петрова обновил 21 May 2025 07:56:38