Как создать связь
Сценарий: уже есть два датасета. Хотим, чтобы строки одного ссылались на строки другого.
Пример
- Объекты недвижимости — родительский датасет с квартирами.
- Платежи аренды — дочерний датасет, в каждом платеже указываем, по какой квартире платёж.
Шаг 1. Откройте схему дочернего датасета
Связь создаётся в дочернем датасете (там, где будет колонка-ссылка), а не в родительском. Откройте «Платежи аренды» → кнопка «Схема».
Шаг 2. Добавьте поле
- «+ Поле» в правом верхнем углу.
- Название: «Объект» (так пользователь увидит колонку).
- Ключ:
object(подставится автоматически из названия). - Тип: «Связь».
- Целевой dataset: выберите «Объекты недвижимости» из выпадающего списка.
- Сохраните.
![]()
Шаг 3. Заполните связь в строках
- Откройте таблицу «Платежи аренды».
- В колонке «Объект» начните вводить адрес — появится выпадающий список с автокомплитом.
- Выберите нужную квартиру → ячейка сохранит id квартиры, отображать будет её человеческое имя (адрес).
Шаг 4. Проверьте на дашборде
- На дашборде добавьте виджет «Столбчатый график».
- Источник: датасет «Платежи аренды».
- Группировать по: поле
object(связь). - Значение:
sum(amount). - Готово — получите доход по каждой квартире.
Что важно знать
- В дочерней строке можно оставить связь пустой (если в схеме не помечено обязательным; см. ⚠️ ниже).
- Если у родительского датасета удалить строку — поведение каскада требует уточнения, см. «Что такое связь».
⚠️ Уточнить: галочка «обязательное» для поля-связи разрешена в схеме, но точное поведение валидации при сохранении строки с пустой связью на момент написания документации не подтверждено в коде. Если требуется жёсткое правило «без связи строку не сохраняем» — проверьте на тестовых данных.
Изменить целевой датасет существующей связи
Технически в UI можно открыть редактор связи и поменять целевой датасет. Не делайте этого на связи с заполненными строками — старые id будут указывать на чужой датасет и ломаться. Безопаснее — создать новое поле-связь, перенести данные, удалить старое.
Частые ошибки
- Создают поле в родительском датасете. Связь — в дочернем. В родительском её не должно быть.
- Указывают неправильный целевой датасет. Проверяйте при создании, потом сложнее поправить.
- Ожидают, что в формуле получат
object.price. Не получат. См. «Связи в формулах».