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

Что такое связь

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

Храните платежи отдельно от квартир, и доход по каждой квартире будет виден сразу.

  1. Аренда квартир.

    • «Объекты недвижимости»: список квартир. У каждой есть адрес, цена, площадь.
    • «Платежи аренды»: список платежей. У каждого платежа есть связь «Объект» → квартира.
    • Хотите видеть, сколько принёс каждый объект? Группируйте платежи по этой связи.
  2. Личные финансы.

    • «Счета»: карты, депозиты, кошельки.
    • «Транзакции» со связью «Счёт» → один из счетов.
    • KPI «остаток по карте» сразу даст ответ.
  3. Малый бизнес.

    • «Контрагенты»: компании и физлица.
    • «Сделки» со связью «Контрагент» → строка из «Контрагентов».
    • Видите суммарный оборот по каждому контрагенту.
Признак Связь Список (enum) Теги
Целевой объект является отдельной сущностью? Да Нет Нет
У целевого есть свои поля? Да (адрес, цена, описание) Нет Нет
Кратность Одна ссылка на строку Один из набора Несколько
Управление списком значений Целевая таблица (можно добавить, изменить, удалить) Варианты в настройке поля Растут по мере ввода
Группировка на дашборде Да Да Частично

Простое правило. Если у того, на что ссылается ваше поле, есть свои собственные поля (например, у «Контрагента» есть ИНН, телефон, адрес), нужна связь. Если это просто метка или категория, хватит списка или тегов.

Sumvest поддерживает связь «многие к одному» (M:1): много строк дочерней таблицы указывают на одну строку родительской.

M:1 поддерживается M:N НЕ поддерживается
Много платежей → одна квартира Несколько собственников → одна квартира с долями
Много сделок → один контрагент Несколько тегов → много задач (используйте поле «Теги»)
Много транзакций → один счёт Многие ко многим в принципе

Что это значит на пальцах. Если у вас много A и одна B на каждое A, это работает (связь добавляется в таблицу A и указывает на B). Если же у каждой A может быть несколько B и у каждой B несколько A, это M:N, и напрямую так нельзя. Обходной путь: промежуточная таблица «AB» с двумя связями, на A и на B.

Возьмём пример «Объекты ↔ Платежи аренды».

  1. Создайте родительскую таблицу «Объекты недвижимости». Подробно в «Первая таблица». Поля: «Адрес», «Цена покупки», «Аренда в месяц» и т. д.
  2. Создайте дочернюю таблицу «Платежи аренды». Поля: «Дата платежа» (Дата), «Сумма» (Деньги).
  3. В «Платежах» на вкладке «Поля» добавьте поле:
    • Название: «Объект»
    • Тип: «Связь»
    • Целевая таблица: «Объекты недвижимости»
  4. Нажмите «Создать поле».
  5. Добавьте платёж: в поле «Объект» выберите квартиру.
  6. На дашборде виджет по «Платежам» с разбивкой по «Объекту» покажет сумму платежей по каждой квартире.

Подробный гайд с акцентом на интерфейс есть в «Как создать связь».

Если удалить строку-родителя, дочерние строки остаются, а ячейка связи в них становится пустой («—»). В виджетах такие строки попадут в группу без значения.

Через точку к полям связанной строки в формуле не обратиться. Используйте «Поле из связанной таблицы». Подробнее в «Связи в формулах».

  • Таблица: связь показывается названием связанной строки.
  • Столбцы, кольцо, топ: разбивка по связи даёт «по квартирам».
  • Фильтр дашборда: работает по полю-связи, как по любому другому.
  • Окно «Записи»: клик по столбцу покажет дочерние строки этой связи.
  • Только «многие к одному».
  • Связь на ту же таблицу (например, «родительский объект») работает.
  • Забыли выбрать запись в связи. Дочерняя строка создаётся с пустой связью. В виджетах она попадёт в группу «без значения» или будет пропущена.
  • Удалили родителя. Дочерние строки остались, но связь в них опустела. Заполните её заново.
  • Выбрали не ту целевую таблицу. Проще создать новое поле-связь и перенести значения.
  • Хотят M:N через связь. Не работает напрямую. См. workaround выше.