Created by Github action <!-- mintlify-editor-comments:start --> Mintlify --- 0 threads from 0 users in Mintlify - No unresolved comments <!-- mintlify-editor-comments:end --> <!-- mintlify-comment--> <a href="https://dashboard.mintlify.com/twenty/twenty/editor/i18n-docs?source=pr_comment" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg"><img src="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg" alt="Open in Mintlify Editor"></picture></a> <!-- /mintlify-comment --> Co-authored-by: github-actions <github-actions@twenty.com>
149 lines
12 KiB
Plaintext
149 lines
12 KiB
Plaintext
---
|
||
title: Импорт связей между объектами
|
||
description: Импорт связей между записями с помощью CSV.
|
||
---
|
||
|
||
## Обзор
|
||
|
||
Twenty поддерживает импорт связей между объектами при импорте CSV. Это позволяет связывать записи (например, прикреплять Людей к Компаниям) в рамках миграции данных.
|
||
|
||
<Note>**В настоящее время поддерживается для импорта**: связи «один-ко-многим», указывающие на один тип объекта с каждой стороны (например, Люди → Компании). Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта.</Note>
|
||
|
||
## Как работают связи в Twenty
|
||
|
||
### Один-ко-многим / Многие-к-одному
|
||
|
||
Twenty поддерживает стандартные связи, когда одна запись связана со многими другими:
|
||
|
||
* **Одна Компания → Многие Люди**: у компании может быть несколько сотрудников, но каждый человек принадлежит одной компании
|
||
* **Одна Компания → Многие Сделки**: у компании может быть несколько сделок, но каждая сделка принадлежит одной компании
|
||
|
||
### Связи, которые могут указывать на несколько типов объектов
|
||
|
||
Некоторые связи могут связывать разные типы объектов. Это работает двумя способами:
|
||
|
||
**Паттерн 1: Многие записи, каждая из которых связана с одной записью каждого типа объекта**
|
||
|
||
Несколько Заметок, Задач или Активностей могут одновременно быть привязаны к нескольким типам объектов:
|
||
|
||
* **Заметки** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
|
||
* **Задачи** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
|
||
|
||
Здесь Заметки/Задачи находятся на стороне «многие». Каждая из них связывается с одной записью каждого типа объекта.
|
||
|
||
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
|
||
|
||
**Паттерн 2: Одна запись, получающая связи от многих записей разных типов объектов**
|
||
|
||
Проект может получать связи от множества записей разных типов объектов:
|
||
|
||
* **Проект** может иметь много связанных с ним Людей, много связанных Компаний и много прикреплённых к нему Заметок
|
||
|
||
Здесь Проект находится на стороне «один». Несколько записей из разных объектов могут ссылаться на один и тот же Проект.
|
||
|
||
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
|
||
|
||
<Warning>
|
||
**Ограничение импорта/экспорта**: связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), **пока не поддерживаются** при импорте или экспорте CSV.
|
||
|
||
* **Импорт**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта с каждой стороны
|
||
* **Экспорт**: столбцы для связей, указывающих на несколько типов объектов, на данный момент остаются пустыми
|
||
|
||
Это запланировано в нашей дорожной карте.
|
||
</Warning>
|
||
|
||
### Что пока не поддерживается
|
||
|
||
**Связи «многие-ко-многим»** пока недоступны. Например, сейчас вы не можете создать связь, где:
|
||
|
||
* Многие Люди связаны со многими Проектами
|
||
|
||
<Note>Связи «многие-ко-многим» запланированы на 1 полугодие 2026 года.</Note>
|
||
|
||
## Связывание записей при импорте
|
||
|
||
<Note>**Напоминание**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта (например, Люди → Компании). Связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), пока не поддерживаются.</Note>
|
||
|
||
### Шаг 1: Определите стороны «один» и «многие»
|
||
|
||
Сначала определите, какой объект находится на стороне «один», а какой — на стороне «многие» в этой связи.
|
||
|
||
**Пример**:
|
||
|
||
* **Компания** — это сторона «один» (у одной компании много сотрудников)
|
||
* **Люди** — это сторона «многие» (каждый человек принадлежит одной компании)
|
||
|
||
### Шаг 2: Убедитесь, что записи стороны «один» существуют
|
||
|
||
Прежде чем импортировать сторону «многие», записи стороны «один» уже должны существовать в Twenty.
|
||
|
||
* Сначала импортируйте или создайте записи стороны «один» (например, Компании)
|
||
* Проверьте их уникальный идентификатор. Это может быть:
|
||
* `id` (UUID в Twenty)
|
||
* Поле, помеченное как уникальное (например, `domain` для Компаний или внешний идентификатор из вашей предыдущей системы)
|
||
|
||
<Warning>Импорт завершится с ошибкой, если ссылка указывает на несуществующую запись.</Warning>
|
||
|
||
### Шаг 3: Подготовьте файл CSV
|
||
|
||
Добавьте столбец в CSV-файл для стороны «многие», который ссылается на запись стороны «один».
|
||
|
||
**Пример**: для CSV-файла Людей, связывающего с Компаниями:
|
||
|
||
```
|
||
firstName,lastName,email,companyDomain
|
||
John,Smith,john@acme.com,https://acme.com
|
||
Jane,Doe,jane@widgets.co,https://widgets.co
|
||
```
|
||
|
||
**Важно**:
|
||
|
||
* Значение должно **в точности совпадать** с уникальным полем в записи Компании
|
||
* Для доменов используйте **URL домена** (например, `https://acme.com`), а не метку домена
|
||
* Сопоставляйте только **один** уникальный идентификатор на связь: так импорт пройдёт более гладко
|
||
|
||
### Шаг 4: Убедитесь, что поле связи существует
|
||
|
||
Перед загрузкой файла убедитесь, что между вашими объектами существует поле связи.
|
||
|
||
Если его нет:
|
||
|
||
1. Перейдите в **Настройки → Модель данных**
|
||
2. Выберите ваш объект (например, Люди)
|
||
3. Создайте поле связи, указывающее на целевой объект (например, Компания)
|
||
|
||
### Шаг 5: Загрузите и сопоставьте связь
|
||
|
||
1. Загрузите ваш CSV-файл через интерфейс импорта
|
||
2. На шаге сопоставления полей найдите столбец связи (например, `companyDomain`)
|
||
3. Сопоставьте его с полем связи (например, Компания)
|
||
4. Twenty автоматически свяжет каждую запись с соответствующим родителем
|
||
|
||
### Доступные уникальные поля для связей
|
||
|
||
| Объект | Доступные уникальные поля |
|
||
| ------------------------------------------------- | ------------------------------------------------------ |
|
||
| **Компании** | `id`, `domain`, любое пользовательское уникальное поле |
|
||
| **Люди** | `id`, `email`, любое пользовательское уникальное поле |
|
||
| **Участники рабочего пространства** | `id`, `email` (не имя) |
|
||
| **Прочие стандартные и пользовательские объекты** | `id`, любое поле, помеченное как уникальное |
|
||
|
||
<Note>**Связь с участниками рабочего пространства**: когда связь указывает на Участников рабочего пространства (ваша команда, входящая в Twenty), указывайте их по **адресу электронной почты**, а не по имени.</Note>
|
||
|
||
<Note>Мы рекомендуем использовать `domain` для Компаний и `email` для Людей, так как эти значения человекочитаемы и их легко поддерживать в таблицах.</Note>
|
||
|
||
<Note>**Напоминание**: Мягко удалённые записи (видны в Командном меню → Показать удалённые записи) учитываются при проверке уникальности. Если вы импортируете запись с тем же уникальным значением, что и у удалённой записи, удалённая запись будет восстановлена. См. [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints) для подробностей.</Note>
|
||
|
||
## Правило порядка импорта
|
||
|
||
<Warning>
|
||
**Всегда сначала импортируйте сторону «один»!**
|
||
|
||
1. **Компании** в первую очередь (без зависимостей)
|
||
2. **Люди** во вторую очередь (связаны с Компаниями)
|
||
3. **Сделки** в третью очередь (связаны с Компаниями/Людьми)
|
||
4. **Пользовательские объекты** с учётом их зависимостей
|
||
|
||
Родительская запись должна существовать до того, как вы сможете на неё сослаться.
|
||
</Warning>
|