Поля связей

В NocoBase поля связей используются для установления связей между разными таблицами данных. Они позволяют одной записи ссылаться на запись в другой таблице или на несколько записей, например связывать заказ с клиентом, задачу с ответственным сотрудником, а студента с курсами.

Поля связей отличаются от обычных полей. Обычные поля обычно соответствуют физическим столбцам в базе данных и используются для хранения текстовых, числовых значений, дат и других данных; поля связей хранят конфигурацию связи между таблицами, а также ключи для поиска связанных записей. Для основной базы данных необходимые настройки связи можно создать при добавлении поля; для внешней базы данных связи обычно создаются на основе существующих первичных, внешних или уникальных ключей, при этом структура таблиц внешней базы данных автоматически не изменяется.

Выбор типа связи

Распространенные типы связей:

Тип связиСценарий использования
Один-к-одномуОдна запись связана только с одной записью в другой таблице. Например, сотрудник связан с одним личным делом.
Один-ко-многимОдна запись связана с несколькими записями в другой таблице. Например, клиент связан с несколькими заказами.
Много-к-одномуНесколько записей связаны с одной целевой записью. Например, несколько заказов связаны с одним клиентом.
Много-ко-многимДве таблицы могут быть связаны с несколькими записями каждая. Например, студенты и курсы связаны друг с другом.
Много-ко-многим (массив)Идентификаторы нескольких целевых записей сохраняются в поле-массиве; подходит для существующих таблиц, в которых значения связей уже хранятся в массивах.

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

Ключевые моменты настройки

При настройке поля связи важно проверить следующее:

  • Целевая таблица данных: с какой таблицей должна быть установлена связь
  • Тип связи: один-к-одному, один-ко-многим, много-к-одному, много-ко-многим или много-ко-многим с массивом
  • Ключ связи: какие поля используются для идентификации записей с обеих сторон, обычно первичный, внешний или уникальный ключ
  • Поле заголовка: какое поле связанной записи по умолчанию отображается в селекторе и блоках
Внимание

Внешние базы данных используют поля связей главным образом для хранения метаданных связей в NocoBase. Добавление поля связи не приводит к автоматическому созданию физических внешних ключей, индексов или промежуточных таблиц во внешней базе данных. Если нужны ограничения внешнего ключа на уровне базы данных, сначала настройте их на стороне базы данных, а затем вернитесь в NocoBase для синхронизации и настройки поля.

Связанные ссылки