リレーションシップ(Relationship)フィールド
リレーションシップフィールドは、2つのテーブル間の接続を作成するために使用されます。標準的なデータフィールド(テキストや数値など)とは異なり、このフィールドは単純な値を保存しません。代わりに、別のテーブルのレコードへの参照(リンク)を保存します。
リレーションシップを作成すると、関連データを単一のリクエストでクエリできます(例:「この著者と著者のすべての本を取得する」)。
構成プロパティ
Section titled “構成プロパティ”リレーションシップフィールドを構成する際、設定はカーディナリティ(リンクできるレコード数)を定義します:
- Name(名前): APIに表示されるフィールドの名前(例:
author、orders、profile)。 - Related Table(関連テーブル): リンク先のターゲットテーブル。(例:Commentsテーブルにいる場合、Usersテーブルを選択するかもしれません)。
- Type (Cardinality)(タイプ(カーディナリティ)): このセクションでは、ラジオボタンを使用して関係のルールを定義します。ここのテキストは選択したテーブルに基づいて動的に変化しますが、通常は2つのパスを提供します:
- Allow multiple [Current Table] per [Related Table]([Rel] ごとに複数の [Cur] を許可する): 1対他の関係を作成するにはこれを選択します(例:1人の著者は多くの本を持つことができます)。
- Allow one [Related Table] per [Current Table]([Cur] ごとに1つの [Rel] を許可する): 1対1を強制するか、接続を厳密に制限するにはこれを選択します(例:1人のユーザーは正確に1つのプロファイルを持ちます)。
- Description(説明): 関係の性質を説明するオプションのメモ。
- Mandatory(必須): 有効にすると、関連テーブルのレコードにリンクされていない限り、レコードを保存できません。
- Unique(一意): 有効にすると、関連テーブルの特定のレコードが一度だけリンクされるようにします。
リレーションシップタイプの説明
Section titled “リレーションシップタイプの説明”| リレーションシップ | 説明 | 例 |
|---|---|---|
| 1対1 | レコードAは1つのレコードBのみにリンクし、その逆も同様です。 | User <-> Profile |
| 1対他 | レコードAは多くのレコードBにリンクされていますが、レコードBは1つのレコードAのみにリンクされています。 | Author <-> Books |
注: あるテーブルでリレーションシップフィールドを作成すると、システムは関連テーブルに「逆」フィールドを自動的に作成し、接続が双方向に機能するようにします。