コンテンツにスキップ

リレーションシップ(Relationship)フィールド

リレーションシップフィールドは、2つのテーブル間の接続を作成するために使用されます。標準的なデータフィールド(テキストや数値など)とは異なり、このフィールドは単純な値を保存しません。代わりに、別のテーブルのレコードへの参照(リンク)を保存します。

リレーションシップを作成すると、関連データを単一のリクエストでクエリできます(例:「この著者と著者のすべての本を取得する」)。

リレーションシップフィールドを構成する際、設定はカーディナリティ(リンクできるレコード数)を定義します:

  • Name(名前): APIに表示されるフィールドの名前(例:authorordersprofile)。
  • 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

注: あるテーブルでリレーションシップフィールドを作成すると、システムは関連テーブルに「逆」フィールドを自動的に作成し、接続が双方向に機能するようにします。