---
title: 一意性の制約
description: Twenty によるインポート時のデータ一意性の確保方法。
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## 概要
Twenty は、重複レコードを防ぎデータの整合性を確保するため、特定のフィールドに一意性を強制します。 これらの制約を理解することは、インポートを成功させるうえで不可欠です。
## デフォルトの一意のフィールド
| オブジェクト | 一意のフィールド |
| -------------- | -------------- |
| **連絡先** | `id`, `email` |
| **会社** | `id`, `domain` |
| **カスタムオブジェクト** | `id` のみ(デフォルト) |
`id` フィールドは Twenty の内部識別子で、各レコードに対して自動生成されます。 UUID 形式を使用します(例: `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)。
## カスタムの一意フィールド
追加の一意フィールドは **設定 → データモデル** で定義できます:
1. **設定 → データモデル** に移動します
2. オブジェクトを選択する
3. フィールドをクリックする
4. フィールド設定で **Unique** を有効化する
### カスタムの一意フィールドのユースケース
* **外部 ID**: 他システムの ID を保存(Salesforce ID、HubSpot ID)
* **ビジネス識別子**: 従業員番号、顧客コード
* **代替連絡先情報**: LinkedIn プロフィール、電話番号
フィールド名 `id` は Twenty の内部 ID 用に予約されています。 外部識別子には `externalId` や `legacyId` など別の名前を使用してください。
## インポート時の動作
### 新規レコードの作成
一意フィールドの値が存在しない場合は、新しいレコードが作成されます。
### 既存レコードの更新
一意フィールドの値が既存レコードに一致する場合、そのレコードは新しいデータで**更新**されます。
**既存レコードを更新**する場合は、**一意フィールドを 1 つのみに限定して照合**することを推奨します。
### ソフト削除済みレコード
**削除済みレコードは一意性の判定に含まれます。**
ソフト削除されたレコード(コマンドメニュー → 削除済みレコードを表示 で表示可能)は、一意性チェックに含まれます。 削除済みレコードと同じ一意の値を持つレコードをインポートすると、その削除済みレコードが新しいデータで**復元**されます。
## インポート時の重複検出
検証フェーズ中:
* ファイル内の重複は黄色でハイライト表示されます
* インポートを開始する前に、UI から重複行を編集または削除できます
## ベストプラクティス
1. インポート前にファイルから**重複を削除**してください
2. インポート前に Twenty で**既存レコードを確認**してください
3. 他のシステムから移行する場合は、**外部 ID を使用**してください
4. 既存レコードを更新したい場合は、**一意フィールドを含め**てください