Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated Apr 30, 2024

Maintenance ModeYou are viewing Amplify Gen 1 documentation. Amplify Gen 1 has entered maintenance mode and will reach end of life on May 1, 2027. New project should use Amplify Gen 2. For existing Gen 1 projects, a migration guide and tooling are available to help you upgrade. Switch to the latest Gen 2 docs →

リレーションシップ

サンプルデータモデルをクローンして、一緒に進めてください

1 対 1 リレーションシップのモデルデータ

The @hasOne and @hasMany directives do not support referencing a model which then references the initial model via @hasOne or @hasMany if DataStore is enabled.

このシナリオでは、書店は販売する書籍を追跡するために ISBN 番号のリストを保持しています。各書籍には 1 つの ISBN 番号だけがあり、各 ISBN 番号は 1 つの書籍にのみ割り当てられています。これは ISBN 番号と書籍間の一対一 (1:1) データリレーションシップの例です。Studio で BookISBN データタイプとそれらのリレーションシップをモデル化するには、以下の手順を使用してください。

  1. クローンしたスキーマで、各書籍が単一の ISBN 番号を持ち、各 ISBN 番号が単一の書籍に関連付けられているため、ISBNBook 間の一対一データリレーションシップを定義します。ISBN タイプで、リレーションシップを追加を選択します。
  2. リレーションシップを追加ウィンドウで、関連モデルを選択メニューから Book を選択します。リレーションシップタイプについては、1 つの ISBN から 1 つの Book へを選択します。リレーションシップ名Book と入力します。保存を選択します。リレーションシップは以下のようになります。

データモデル間の一対一リレーションシップを追加

データモデリングページに戻ると、ISBN モデルがリレーションシップ情報で更新されます。Book モデルについても同じ手順を繰り返します - Book から ISBN への 1:1 リレーションシップを定義します。

1 対多のリレーションシップのモデルデータ

The @hasOne and @hasMany directives do not support referencing a model which then references the initial model via @hasOne or @hasMany if DataStore is enabled.

それでは、出版社のデータモデルを作成しましょう。書店の各書籍には出版社が 1 つだけあります。ただし、各出版社は多くの書籍を出版できます。これは、弊社の例でモデル化できる出版社と書籍間の一対多リレーションシップ (1:n) を表しています。

  1. クローンしたスキーマで、Publisher モデルを選択します。
  2. Publisher モデルについて、リレーションシップを追加を選択します。
  3. リレーションシップを追加ウィンドウで、関連モデルを選択メニューから Book を選択します。リレーションシップタイプについては、1 つの Publisher から多くの Book へを選択します。リレーションシップ名books と入力します。保存を選択します。リレーションシップは以下のようになります。

データモデル間の一対多リレーションシップを追加

多対多のリレーションシップのモデルデータ

それでは、著者の最終的なデータモデルを弊社の例に追加しましょう。書籍は単一の著者または複数の著者を持つことができます。したがって、書店の書籍は多くの著者によって書かれることができ、各著者は多くの書籍を書くことができます。これは、弊社の例でモデル化できる書籍と著者間の多対多 (m:n) データリレーションシップです。

  1. クローンしたスキーマで、Author モデルを選択します。
  2. Author モデルについて、リレーションシップを追加を選択します。
  3. リレーションシップを追加ウィンドウで、関連モデルを選択メニューから Book を選択します。リレーションシップタイプについては、多くの Author から多くの Book へを選択します。リレーションシップ名に、Book などの意味のある名前を入力します。保存を選択します。リレーションシップは以下のようになります。

データモデル間の多対多リレーションシップを追加

Studio ではカスタム命名はサポートされていません。自動生成される名前を変更すると、Studio が壊れます。

データモデルが期待どおりに機能するかテストする

データのモデル化とデータリレーションシップの定義が完了したら、モデルを Amplify バックエンド環境に保存してデプロイできます。

  1. データモデリングページの右上隅でデプロイを選択します。

  2. サンドボックスで作業している場合、AWS にデプロイページで、AWS アカウントを作成またはAWS アカウントにログインしてデプロイを選択し、デプロイプロセスを進めます。

  3. AWS アカウントから Studio で作業している場合、デプロイステータスはページの右上隅に表示されます。

  4. コンテンツタブに移動し、テーブルでデータを作成します。異なるモデルのレコードを作成およびリンクできるようになります。詳細については、コンテンツ管理を参照してください。