Производительность приложений на Bubble. Заметки. Часть 18. Триггеры.
Данная серия статей — это мои заметки по книге The Ultimate Guide to Bubble Performance. Тут изложено только то, что фиксировал я, т.к. посчитал это важным.
Синхронизация данных
Об этом варианте использования писал в одной из статей ранее, но подумал, что его стоит добавить, дабы напомнить.
Если у нас в приложении есть сущность, которая зависит от другой сущности, то логично будет их как-то синхронизировать. В этом-то и помогут триггеры.
Напомню пример, который разбирали ранее:
У нас есть сущность Article и есть сущность SearchType, которая содержит только необходимые данные для поиска по статьям. К примеру, название статьи.
Информация в SearchType зависима от инфы в Article. Если мы изменяем название статьи в Article, то нам нужно изменить название и в SearchType. Для этих целей можно использовать wf и изменять SearchType вторым шагом после изменения Article.
Или же мы можем создать Trigger, который не будет нагружать клиентскую сторону, и сработает на бэке незаметно для пользователя. Триггер будет изменять название в сущности SearchType каждый раз при изменении названия в сущности Article.
Автоматизация рабочих процессов при помощи option sets и trigger.
Представим, что к нам поступила заявка, лид (Lead), нам нужно что-то с ней сделать: или удалить, или копировать, или архивировать или завести аккаунт.
Вот как это можно автоматизировать с помощью триггеров.
В Option Sets Command положим различные комманды:
В типе данных Lead создадим поле с типом данных Command
Создадим триггер для каждой из команды.
Теперь каждый раз, когда мы будем изменять комманду для лида, будет срабатывать триггер и запускать соответствующий рабочий процесс. Удобно? Удобно.
Когда использовать бэкенд триггеры
Используйте их, когда нужно сделать приложение более отзывчивым на пользовательские действия, переместив большие операции на серверную часть. Синхронизировать данные вне зависимости от того, где эти данные изменяются в приложении.
Если ваша команда Delete выполняет единственное действие Delete a thing, то нет смысла делать сложную логику на бэке через триггеры. Проще всего разместить это действие на странице. Но если нужно выполнить сложное каскадное удаление, то триггеры будут очень кстати.
→ Подписывайтесь на мой канал в Телеграме Иван Некодит.