Как устроены связи между таблицами

Что такое связи, разница между «один-ко-многим» и обратным полем, как добавить связанную запись прямо из карточки родительской записи.

Связи — то, что превращает набор таблиц в настоящую систему, а не просто несколько списков.

Типы связей

  • Один-к-одному — одна запись связана ровно с одной записью в другой таблице.
  • Один-ко-многим — одна запись (например, Клиент) связана с несколькими записями в другой таблице (например, несколько Проектов одного клиента).
  • Многие-ко-многим — записи с обеих сторон могут быть связаны произвольно (например, Проект может использовать несколько Материалов, а Материал — использоваться в нескольких Проектах).

Обратное поле

Если у Проекта есть поле связи «Клиент», то на таблице Клиенты автоматически появляется обратное поле — список всех Проектов этого клиента. Через такое обратное поле можно добавлять новые связанные записи прямо из карточки родительской записи — например, добавить новую строку расхода прямо со страницы проекта, не переходя в таблицу Расходы.

Формулы через связи

После того как связь настроена, можно строить формулы, которые считают что-то по связанным записям — например, SUM(expenses.amount) посчитает сумму всех расходов, связанных с проектом, а budget - SUM(expenses.amount) покажет остаток бюджета. Подробнее — в статье Как работают формулы.

Нужна ещё помощь?

Напишите команде — ответим в течение рабочего дня.