5.3 Сохранение данных

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

Создание, изменение и удаление сущности

Вы найдете соответствующие действия в разделе "Данные (сущности)"/"Data (things)" в меню действий.

Создание новой сущности

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

Выбрав тип, вы сможете добавить значение в некоторые (или все) поля. В каждой строке вам будет предложено выбрать поле (или создать новое), а затем задать значение этого поля, которое может быть жестко прописано или являться динамическим выражением, созданным в Конструкторе выражений. Результат выражения должен совпадать по типу с самим полем, в ином случае появится несоответствие типов, описанное в предыдущем разделе (!!!ЛНК!!!).

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

Изменение сущности

Действие "Изменить сущность"/"Modify a thing" позволяет вам выбрать сущность и изменить её. Так как сущность уже существует, вам не нужно выбирать тип, типом будет тип выбранной сущности. Например, это может быть "Текущий пользователь"/"Current User".

Когда сущность выбрана, это действие работает примерно как действие создания сущности, вы выбираете поля и задаёте им новое значение.

Удаление сущности

Действие "Удалить сущность"/"Delete a thing" удаляет её из базы данных целиком. Это действие может быть отменено с помощью настроек резервного копирования приложения (см. раздел Резервное копирование данных), но не может быть отменено с помощью рабочего процесса.

Работа со списками сущностей

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

У Bubble есть несколько действий для этого. Вы можете изменить, удалить или скопировать список сущностей. Важно отметить, что по соображениям производительности и стабильности, эта операция не выполняется мгновенно, и если вы работаете с длинным списком, то это может занять какое-то время. Операция будет выполняться в фоне, но ваш процесс не должен ожидать немедленного ответа.

Копирование списка сущностей на данный момент ограничено 50 единицами (по соображениям стабильности). Если вы попытаетесь скопировать в процесс более 50 элементов, ничего не будет создано.

Хорошим подходом является использование расписаний событий при работе со списками, так как это делает разработку процессов проще. Использование запланированных процессов позволяет им работать в фоне и не вмешиваться в работающие на странице процессы. См. раздел API (!!!ЛНК!!!) для больших подробностей по этому поводу.

Автопривязка

"Автоматическая привязка"/"Auto binding" позволяет вам изменять сущность автоматически, когда пользователь изменяет элемент ввода, без использования процесса. Это позволяет сэкономить время, т.к. вам не нужно беспокоиться о начальном содержимом поля ввода, срабатывании процесса при изменении значения и т.д. Вместо этого, если поле ввода связано с полем в сущности, значение поля будет обновляться в момент ввода пользователем информации.

Это поле ввода должно быть в группе или на странице, для которой определен тип содержимого. Изменяться будет сущность родительской группы или страницы. Для этого вам понадобится настроить права доступа в разделе Приватность, вкладке Данные (см. ниже)

Last updated