Перейти к содержимому

Как создать связь

Сценарий: уже есть два датасета. Хотим, чтобы строки одного ссылались на строки другого.

Пример

  • Объекты недвижимости — родительский датасет с квартирами.
  • Платежи аренды — дочерний датасет, в каждом платеже указываем, по какой квартире платёж.

Шаг 1. Откройте схему дочернего датасета

Связь создаётся в дочернем датасете (там, где будет колонка-ссылка), а не в родительском. Откройте «Платежи аренды» → кнопка «Схема».

Шаг 2. Добавьте поле

  1. «+ Поле» в правом верхнем углу.
  2. Название: «Объект» (так пользователь увидит колонку).
  3. Ключ: object (подставится автоматически из названия).
  4. Тип: «Связь».
  5. Целевой dataset: выберите «Объекты недвижимости» из выпадающего списка.
  6. Сохраните.

Создание поля «Связь»

Шаг 3. Заполните связь в строках

  1. Откройте таблицу «Платежи аренды».
  2. В колонке «Объект» начните вводить адрес — появится выпадающий список с автокомплитом.
  3. Выберите нужную квартиру → ячейка сохранит id квартиры, отображать будет её человеческое имя (адрес).

Шаг 4. Проверьте на дашборде

  1. На дашборде добавьте виджет «Столбчатый график».
  2. Источник: датасет «Платежи аренды».
  3. Группировать по: поле object (связь).
  4. Значение: sum(amount).
  5. Готово — получите доход по каждой квартире.

Что важно знать

  • В дочерней строке можно оставить связь пустой (если в схеме не помечено обязательным; см. ⚠️ ниже).
  • Если у родительского датасета удалить строку — поведение каскада требует уточнения, см. «Что такое связь».

⚠️ Уточнить: галочка «обязательное» для поля-связи разрешена в схеме, но точное поведение валидации при сохранении строки с пустой связью на момент написания документации не подтверждено в коде. Если требуется жёсткое правило «без связи строку не сохраняем» — проверьте на тестовых данных.

Изменить целевой датасет существующей связи

Технически в UI можно открыть редактор связи и поменять целевой датасет. Не делайте этого на связи с заполненными строками — старые id будут указывать на чужой датасет и ломаться. Безопаснее — создать новое поле-связь, перенести данные, удалить старое.

Частые ошибки

  • Создают поле в родительском датасете. Связь — в дочернем. В родительском её не должно быть.
  • Указывают неправильный целевой датасет. Проверяйте при создании, потом сложнее поправить.
  • Ожидают, что в формуле получат object.price. Не получат. См. «Связи в формулах».

Что дальше