--- 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. 既存レコードを更新したい場合は、**一意フィールドを含め**てください