Для этой функции также требуется включить Расширенный режим (переключатель внизу справа в Настройках).
Когда использовать связи многие-ко-многим
Используйте связь многие-ко-многим, когда обе стороны отношений могут иметь несколько связей:| Связь | Пример |
|---|---|
| Люди ↔ Проекты | Один человек работает над несколькими проектами; у проекта несколько участников команды |
| Компании ↔ Теги | У компании может быть несколько тегов; один тег может относиться к нескольким компаниям |
| Товары ↔ Заказы | Товар может входить в несколько заказов; заказ содержит несколько товаров |
Как это работает
Twenty использует шаблон объекта-связки для связей многие-ко-многим. Объект-связка находится между двумя объектами и хранит связи:- Связь с Людьми (многие-к-одному)
- Связь с Проектами (многие-к-одному)
Требования
- Включите Junction Relations в Lab: Перейдите в Настройки → Обновления → Lab и включите Junction Relations
- Включите Расширенный режим: Переключите Расширенный режим внизу справа боковой панели Настроек
- Спланируйте вашу модель данных:
- Какие два объекта вы соединяете?
- Как назвать объект-связку?
Шаг 1: Создайте объект-связку
Сначала создайте промежуточный объект, который будет хранить связи.- Перейдите в Настройки → Модель данных
- Нажмите + Новый объект
- Дайте ему понятное имя (например, “Project Assignment”, “Team Member”, “Product Order”)
- Нажмите Сохранить
Шаг 2: Создайте связи из объекта-связки
Добавьте поля связи из объекта-связки к обоим объектам, которые вы хотите соединить.Первая связь (Объект-связка → Объект A)
- Выберите ваш объект-связку в Настройки → Модель данных
- Нажмите + Добавить поле
- Выберите тип поля Связь
- Выберите первый объект (например, “Люди”)
- Установите тип связи Многие-к-одному (много назначений могут ссылаться на одного человека)
- Назовите поля:
- Поле на объекте-связке: например, “Person”
- Поле в объекте Люди: например, “Project Assignments”
- Нажмите Сохранить
Вторая связь (Объект-связка → Объект B)
- Оставаясь на объекте-связке, нажмите + Добавить поле
- Выберите тип поля Связь
- Выберите второй объект (например, “Проекты”)
- Установите тип связи Многие-к-одному
- Назовите поля:
- Поле на объекте-связке: например, “Project”
- Поле в объекте Проекты: например, “Team Members”
- Нажмите Сохранить
Шаг 3: Настройте отображение связи через объект-связку
Теперь настройте исходные объекты так, чтобы отображать связанные записи напрямую, минуя промежуточный объект-связку.- Перейдите в Настройки → Модель данных
- Выберите первый объект (например, “Люди”)
- Найдите поле связи, указывающее на объект-связку (например, “Project Assignments”)
- Нажмите, чтобы отредактировать поле
- Включите “Это связь с объектом-связкой”
- Выберите Целевую связь (например, “Project” — поле на объекте-связке, указывающее на другую сторону)
- Нажмите Сохранить
- Выберите “Проекты” в Модели данных
- Отредактируйте поле связи “Team Members”
- Включите переключатель объекта-связки
- Выберите “Person” как целевую связь
- Сохранить
Результат
После настройки:- В записи Person поле “Project Assignments” показывает Проекты напрямую (не записи назначений)
- В записи Project поле “Team Members” показывает Людей напрямую
Пример: Люди ↔ Проекты
Полный пошаговый пример:Создайте объект-связку
- Имя: Project Assignment
- Описание: “Связывает людей с проектами, над которыми они работают”
Добавьте связи
-
Project Assignment → Люди
- Тип: Многие-к-одному
- Поле в объекте Assignment: “Person”
- Поле в объекте Люди: “Project Assignments”
-
Project Assignment → Проекты
- Тип: Многие-к-одному
- Поле в объекте Assignment: “Project”
- Поле в объекте Проекты: “Team Members”
Настройте отображение объекта-связки
-
В объекте Люди:
- Отредактируйте поле “Project Assignments”
- Включите переключатель объекта-связки
- Цель: “Project”
-
В объекте Проекты:
- Отредактируйте поле “Team Members”
- Включите переключатель объекта-связки
- Цель: “Person”
Использование
- Откройте запись Person → Просмотрите её проекты напрямую
- Откройте запись Project → Просмотрите участников команды напрямую
- Создавайте новые связи с любой стороны
Добавление дополнительных данных к связям
Поскольку объект-связка — это настоящий объект, вы можете добавить пользовательские поля для хранения информации о связи:- Роль: “Developer”, “Designer”, “Manager”
- Дата начала: Когда они присоединились к проекту
- Выделенные часы: Еженедельное количество часов на этот проект
Ограничения
- Импорт/экспорт CSV: Прямой импорт связей многие-ко-многим не поддерживается. Вместо этого импортируйте записи в объект-связку.
- Фильтры: Фильтрация по связям многие-ко-многим может иметь ограниченные возможности.
Связанные материалы
- Поля связей — объяснение типов связей
- Создание пользовательских объектов — как создавать объекты
- Создание полей связи — базовая настройка связей