v2.47.0

Главная » Блог » v2.47.0

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

Сами по себе кастомные таблицы играют важную роль в создании чат-ботов и диалоговых приложений. Они помогают в разработке бизнес-логики, интеграциях с внешними сервисами, сборе аналитики, работе с нейросетями и в целом являются удобным и практичным хранилищем данных, альтернативным таким продуктам как Google Sheets, AirTable и Notion

Данный долгожданный релиз, ожидаемый многими из вас, делает кастомные таблицы полноценной базой данных, благодаря связям между таблицами.

Разработчики, знакомые с SQL языком и понимающие, что такое LEFT JOIN запросы, по достоинству оценят данное нововведение. 

Теперь на Metabot платформе вы сможете создавать полноценные реляционные базы данных для ваших продуктов и решений. 

В качестве примера приведем несколько таблиц и покажем их связи:

Table: roles (Справочник ролей)

ПолеОписаниеТип
idIDAUTOINCREMENT
codeКодTEXT
nameНазваниеTEXT

Table: user_roles (Роли пользователей)

ПолеОписаниеТипСвязь
idIDAUTOINCREMENT
user_idID полBIG_INT
userПользовательRELATIONusers
role_idID ролиBIG_INT
roleРольRELATIONroles

Table: users (Пользователи)

ПолеОписаниеТипСвязь
idIDAUTOINCREMENT
emailПочтаTEXT
phoneТелефонTEXT
first_nameИмяTEXT
last_nameФамилияTEXT
patronymicОтчествоTEXT
status_idID статусаBIG_INT
statusСтатусRELATIONuser_statuses
created_atДата добавленияCREATED_AT
updated_atДата обновленияUPDATED_AT

Table: user_statuses (Статусы пользователей)

ПолеОписаниеТип
idIDAUTOINCREMENT
codeКод статусаTEXT
nameНазваниеTEXT
is_activeФлаг активностиTINY_INT
is_cancelledФлаг отменыTINY_INT

В этом примере вы можете увидеть, что есть справочник доступных ролей, например, там могут быть абитуриент, студент, преподаватель, куратор.

Далее мы видим, что приложения подразумевает мульти-роль у пользователя, например, пользователь может быть одновременно преподавателем и куратором.

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

Что дают связи между таблицами? 

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

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

Metabot отлично работает в сочетании с другими бот-платформами и Low Code, No Code и AI инструментами. 

Теперь детальнее разберем как настраивать и как работают нововведения.

1. Создание связей

Связи между таблицами реализуются с помощью специальных полей таблиц. Сначала создается стандартное поле бд, например lead_id с типом BIG INT. Чтобы связать это поле с другой таблицей нужно создать отдельное поле с типом RELATION. Сделать это можно при помощи кнопки + напротив поля lead_id или кнопки Создать.

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

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

2. Применение

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

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

Изменения претерпел и основной JS метод кастомных таблиц. Через table.find теперь так же можно искать связанные поля. Для этого к названию связанного поля из другой таблицы нужно добавить алиас указанный в поле таблицы к которой происходит обращение через метод.

const items = table.find('products', ['orders.id'])

v2.47.0 — 2025-05-20

Описание версии

Добавлено

  • Кастомные таблицы: связи между таблицами.

Техническое описание релиза:

https://docs.metabot24.ru/books/08-changelog/page/v2470-2025-05-20