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

Шаблоны использования связей

Три повторяющихся паттерна, в которых связь даёт больше всего пользы.

Паттерн 1. Квартиры → Платежи аренды

Родитель: «Объекты недвижимости» — address, purchase_price, monthly_rent, purchase_date, is_rented.

Дочерний: «Платежи аренды» — payment_date, amount, object (связь), status (enum: paid/pending/overdue).

Что получаете на дашборде:

  • Виджет KPI «Сдано в этом месяце» = sum(amount) с фильтром «месяц».
  • Линейный график «Денежный поток по месяцам» — серия sum(amount) по полю даты.
  • Drill-down: клик на столбец «Май 2026» → список платежей.
  • Drill-down по квартире: клик на квартиру в таблице «Объектов» → список платежей именно по ней.

Расходы тоже отдельно. Тот же родительский «Объекты», новый дочерний «Расходы»: ремонты, налоги, комиссии. Связь object → квартира. Тогда виджет «Чистый доход по объекту» = sum(rent.amount) − sum(expense.amount).

Паттерн 2. Активы → Сделки

Родитель: «Активы» — ticker, name, current_price, class (enum: crypto/stock/bond).

Дочерний: «Сделки» — trade_date, asset (связь), type (enum: buy/sell), qty, price, fee.

Что получаете:

  • KPI «Стоимость портфеля» = сумма qty × current_price через формулу или JOIN-агрегацию на дашборде.
  • Средняя цена покупки по активу — рецепт в «Готовых рецептах» (потребует доп. формулы и группировки).
  • Donut «Структура портфеля» — sum(qty × current_price), группировка по asset.

⚠️ Уточнить: «JOIN-агрегации» (формулы или виджеты, которые обращаются к полям родителя через связь) в текущей версии работают на уровне дашборда (фильтры + группировки), но не на уровне формул в дочернем датасете. Если нужен asset.current_price внутри формулы — это пока невозможно. См. «Связи в формулах».

Паттерн 3. Категории → Расходы

Родитель: «Категории» — name, color, budget_month (Деньги — план на месяц).

Дочерний: «Расходы» — date, amount, category (связь), notes.

Что получаете:

  • Donut «Расходы по категориям» — sum(amount), группировка по category.
  • Сравнение план/факт: на дашборде два виджета — один читает budget_month из родителя, другой считает sum(amount) за месяц по дочернему.
  • Drill-down: клик по категории → список конкретных расходов.

Когда связь не нужна

  • Если у целевого нет полей. Например, «приоритет» (низкий/средний/высокий) — это «Список», не связь.
  • Если значения уникальны. Например, имя контрагента в одной строке встречается единственный раз — заведите «Текст», а не отдельный датасет.
  • Если связь нужна «вверх» к одному родителю из множества. Это уже M:N — пока не поддерживается. См. «Что такое связь».

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

  • Сделали связь между двумя датасетами, а потом дублировали поля «адрес» в обоих. Не нужно: адрес живёт в родителе, в дочернем — только связь.
  • Хотят «сумму платежей» как формулу в «Объектах». Внутри формулы это не делается — на дашборде агрегируйте по связи. См. ⚠️ выше.
  • Создают связь от ребёнка к ребёнку без общего родителя. Чаще всего тут нужен третий датасет-родитель.

Что дальше