Files
twenty/packages/twenty-docs/l/zh/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv.mdx
T
github-actions[bot] 001c2097a3 i18n - docs translations (#18231)
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>
2026-02-25 16:50:28 +01:00

226 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 通过 CSV 导入对象之间的关系
description: 在 CSV 导入过程中关联记录的完整分步指南。
---
## 概览
本指南将引导您导入对象之间的关系——例如,将人员与公司关联,或将商机与人员关联。
<Note>\*\*可导入内容:\*\*仅限指向单个对象类型的一对多关系。 指向多个对象类型的关系(例如,笔记同时关联到人员和公司)目前尚不支持导入。</Note>
## 了解关系
### 什么是“一对多”关系?
在一对多关系中:
* **一个**公司拥有**多个**人员(员工)
* **一个**公司拥有**多个**商机
* **一个**人拥有**多个**任务
“一”侧为**父级**。 “多”侧为**子级**。
### Twenty 中的常见关系
| 关系 | “一”侧(父级) | “多”侧(子级) |
| ------- | -------- | -------- |
| 公司 → 人员 | 公司 | 人员 |
| 公司 → 商机 | 公司 | 机会 |
| 人员 → 任务 | 人员 | 任务 |
| 人员 → 笔记 | 人员 | 备注 |
## 步骤 1:确定“一”和“多”两侧
在导入之前,确定哪个对象是父级,哪个是子级。
**自问:**“是否一个[对象 A]拥有多个[对象 B]?”
* 一个公司 → 多个人员 ✓(公司为父级)
* 一个人 → 多个公司 ✗(这是错误的——一个人隶属于一个公司)
## 步骤 2:先导入父级记录
在引用之前,父级(“一”侧)必须已存在于 Twenty 中。
**导入顺序:**
1. **公司** 优先(无依赖关系)
2. **人员** 其次(关联到公司)
3. **商机** 第三(关联到公司和/或人员)
4. **任务/笔记**(可关联到以上任一项)
<Warning>
**如果父级记录不存在,导入将失败。**
在导入包含公司引用的人员之前,请务必确认公司已导入。
</Warning>
## 步骤 3:记录父级的唯一标识符
您需要使用**唯一标识符**来引用父级记录。 可用选项:
| 父级对象 | 可用的唯一标识符 |
| --------- | --------------------------------- |
| **公司** | `id`UUID)、`domain`(推荐)或任何自定义唯一字段 |
| **人员** | `id`UUID)、`email`,或任何自定义唯一字段 |
| **工作区成员** | `id`UUID)、`email`(而非姓名) |
| **自定义对象** | `id`(UUID),或任何标记为唯一的字段 |
<Note>\*\*建议:\*\*公司使用 `domain`,人员使用 `email`。 这些字段可读性强,且在电子表格中易于核对。</Note>
### 查找标识符
如果您需要 `id`
1. 从 Twenty 导出父级记录
2. 导出结果包含 `id` 列
3. 在子级记录文件中使用这些 ID
## 步骤 4:核实关系字段是否存在
在导入之前,确保对象之间存在关系字段。
**检查或创建的方法:**
1. 进入 **设置 → 数据模型**
2. 选择您的子级对象(例如,人员)
3. 查找指向父级的关系字段(例如,公司)
4. 如果不存在,请创建:
* 点击 **+ 添加字段**
* 选择 **关系** 类型
* 选择父级对象
## 步骤 5:准备您的 CSV 文件
在子级 CSV 中添加一列,使用父级的唯一标识符进行引用。
### 示例:人员关联到公司
**您的人员 CSV**
```csv
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
`companyDomain` 列引用公司的域名。
### 格式要求
| 标识符 | 格式 | 示例 |
| ---- | ------ | -------------------------------------- |
| 域 | URL 格式 | `https://acme.com` |
| 电子邮件 | 标准邮箱 | `john@acme.com` |
| 编号 | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**域名格式很重要!**
请使用 `https://domain.com`(而不是仅 `domain.com`)。 这与 Twenty 存储公司域名的方式一致,并可避免匹配错误。
</Warning>
### 重要规则
1. **需要精确匹配** — 值必须与父级记录完全一致
2. **仅映射一个唯一标识符** — 不要同时包含 `companyId` 和 `companyDomain`
3. **区分大小写** — `Acme.com` ≠ `acme.com`
## 步骤 6:上传并映射关系
1. 前往子级对象(例如,人员)
2. 点击 **⋮** → **导入记录**
3. 上传您的 CSV 文件
4. 在字段映射步骤中:
* 找到您的关系列(例如,`companyDomain`
* 将其映射到 **Company** 关系字段
5. 完成其余映射
6. 检查错误并确认
Twenty 将自动把每条子级记录关联到匹配的父级。
## 步骤 7:验证导入结果
导入后:
1. 打开几条子级记录(例如,人员)
2. 确认关系字段显示正确的父级(例如,公司)
3. 打开一条父级记录并检查相关记录部分
## 常见错误及避免方法
| 错误 | 问题 | 解决方案 |
| ---------- | -------------------------------------- | -------------------------- |
| **导入顺序错误** | 在公司之前导入人员 | 始终先导入父级,再导入子级 |
| **域名格式错误** | 使用 `acme.com` 而非 `https://acme.com` | 使用带有 `https://` 的完整 URL 格式 |
| **多个唯一字段** | 同时映射 `companyId` 和 `companyDomain` | 仅映射一个唯一标识符 |
| **缺少关系字段** | 数据模型中不存在该关系字段 | 请在导入前于 **设置 → 数据模型** 中创建 |
| **记录不存在** | 父级记录在 Twenty 中不存在 | 先导入父级记录,或检查是否有拼写错误 |
| **大小写不匹配** | 文件中为 `Acme.com`,但 Twenty 中为 `acme.com` | 确保大小写完全一致 |
## 关联到工作区成员
当关联到工作区成员(您的团队)时:
* 使用他们的**电子邮箱地址**,而不是姓名
* 例如:`owner@yourcompany.com`,而不是 "John Smith"
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## 常见问题
<AccordionGroup>
<Accordion title="如果我的父级记录没有域名或邮箱怎么办?">
您有两个选项:
1. 使用 Twenty 的 `id`(导出父级记录以获取其 ID)
2. 在数据模型中创建自定义唯一字段,用于存储来自旧系统的外部 ID
</Accordion>
<Accordion title="我可以更新现有记录上的关系吗?">
是! 包含子级记录的唯一标识符(例如,人员的 `email`)以及新的关系值。 导入将更新该关系。
</Accordion>
<Accordion title="我可以导入多对多关系吗?">
目前尚不支持导入多对多关系。 计划于 2026 年上半年推出。
</Accordion>
<Accordion title="我可以关联到多个对象类型吗(例如,笔记同时关联到人员和公司)?">
指向多个对象类型的关系目前尚不支持导入/导出。 此功能已在我们的路线图中。
</Accordion>
<Accordion title="如果父级记录不存在会怎样?">
导入会为该行显示错误。 您可以:
* 先导入父级记录,然后重新导入
* 修正引用值
* 从导入中移除该行
</Accordion>
<Accordion title="为什么我的关系没有正确关联?">
常见原因:
* 格式错误(域名请使用 `https://domain.com`
* 大小写不匹配(检查拼写是否完全一致)
* 父级不存在(请先导入父级)
* 映射了多个标识符(仅使用一个)
</Accordion>
</AccordionGroup>
<Warning>
**请注意:软删除的记录也会计入唯一性。**
如果您收到“not found”错误,但记录似乎存在,请检查命令菜单 → 查看已删除的记录。 父级可能已被软删除。
</Warning>
## 故障排除
遇到问题? 请查看:
* [如何修复导入错误](/l/zh/user-guide/data-migration/how-tos/fix-import-errors)
* [导入关系功能](/l/zh/user-guide/data-migration/capabilities/import-relations)
* [唯一性约束](/l/zh/user-guide/data-migration/capabilities/uniqueness-constraints)