# 多対一

図書館のデータベースを例に考えてみましょう。そこには「書籍」と「著者」という2つのエンティティがあります。一人の著者が複数の書籍を執筆できますが、通常、各書籍には一人の著者しかいません。この場合、「著者」と「書籍」の間には多対一の関係が成り立ちます。複数の書籍が同じ著者に紐付けられますが、各書籍は一人の著者のみに紐付けられます。

ER図:

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

フィールド設定:

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

## パラメータの説明

### Source collection

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

### Target collection

ターゲット コレクションとは、関連付けを行うコレクションのことです。

### Foreign key

ソース コレクションのフィールドで、2つのコレクション間の関連付けを確立するために使用されます。

### Target key

外部キーによって参照されるターゲット コレクションのフィールドです。一意である必要があります。

### ON DELETE

ON DELETE とは、親コレクションのレコードが削除された際に、関連する子コレクションの外部キー参照に適用されるルールを指します。これは外部キー制約を定義する際に使用するオプションです。一般的な ON DELETE オプションは以下の通りです。

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