# 一対一

従業員とプロフィールの関係では、各従業員は1つのプロフィールレコードのみを持つことができ、各プロフィールレコードも1人の従業員にのみ対応します。このような場合、従業員とプロフィールの関係は一対一です。

一対一関係における外部キーは、ソースコレクションまたはターゲットコレクションのどちらに配置しても構いません。もし「〜を持つ」関係を表す場合は、外部キーをターゲットコレクションに配置する方がより適切です。一方、「〜に属する」関係を表す場合は、ソースコレクションに配置する方がより適しています。

上記の例では、従業員が1つのプロフィールのみを持ち、プロフィールが従業員に属しているため、この外部キーはプロフィールコレクションに配置するのが適切です。

## 一対一（〜を持つ）

ある従業員がプロフィールレコードを1つ持つことを示します。

ER関係

![alt text](https://static-docs.nocobase.com/4359e128936bbd7c9ff51bcff1d646dd.png)

フィールド設定

![alt text](https://static-docs.nocobase.com/7665a87e094b4fb50c9426a108f87105.png)

## 一対一（〜に属する）

あるプロフィールが特定の従業員に属することを示します。

ER関係

![](https://static-docs.nocobase.com/31e7cc3e630220cf1e98753ca24ac72d.png)

フィールド設定

![alt text](https://static-docs.nocobase.com/4f09eeb3c7717d61a349842da43c187c.png)

## パラメータ説明

### Source collection

現在のフィールドが存在するソースコレクションです。

### Target collection

関連付けられるターゲットコレクションです。

### Foreign key

2つのコレクション間の関連を確立するために使用されます。一対一関係における外部キーは、ソースコレクションまたはターゲットコレクションのどちらに配置しても構いません。もし「〜を持つ」関係を表す場合は、外部キーをターゲットコレクションに配置する方がより適切です。一方、「〜に属する」関係を表す場合は、ソースコレクションに配置する方がより適しています。

### Source key <- Foreign key（外部キーがターゲットコレクションにある場合）

外部キー制約が参照するフィールドで、一意である必要があります。外部キーがターゲットコレクションに配置されている場合、「〜を持つ」関係を示します。

### Target key <- Foreign key（外部キーがソースコレクションにある場合）

外部キー制約が参照するフィールドで、一意である必要があります。外部キーがソースコレクションに配置されている場合、「〜に属する」関係を示します。

### ON DELETE

ON DELETEは、親コレクションのレコードを削除する際に、関連する子コレクション内の外部キー参照に対する操作ルールを指します。これは、外部キー制約を定義する際のオプションの1つです。一般的なON DELETEオプションは以下の通りです。

- CASCADE：親コレクションのレコードが削除された場合、子コレクション内の関連するすべてのレコードを自動的に削除します。
- SET NULL：親コレクションのレコードが削除された場合、子コレクション内の関連する外部キー値をNULLに設定します。
- RESTRICT：デフォルトのオプションです。親コレクションのレコードを削除しようとした際に、関連する子コレクションのレコードが存在する場合、親コレクションのレコードの削除を拒否します。
- NO ACTION：RESTRICTと同様に、関連する子コレクションのレコードが存在する場合、親コレクションのレコードの削除を拒否します。