はじめに
以下のゴールを達成するため、本日は Hasuraの リレーションシップを学んでいきます。
今回はHasuraを使って1対1のリレーションを作る方法を見ていきます。
最終的なゴール
以下のような構成のアプリを作ることです。
目的
- 仕事で使っている技術のキャッチアップと復習
- 使う可能性がある技術の理解度向上
Hasuraのリレーションシップ(1対1)
今回説明するHasuraのリレーションシップ(1対1)の概念図です。
これを実際に、テーブルや関連づけやデータを追加することで実現していきます。
やり方の概要を先に伝えておくと
前回やった、1対多の関係をForeign Key で作成して関係の設定を unique 制限をかければ1対1のリレーションシップはできます。
前回👇
https://qiita.com/ryosuketter/items/59a05d4eb5c715287ded
テーブルの作成とデータの追加
usersテーブル以外に、profilesテーブルを作成します。
続いて、データを追加します。
いつものように、「Insert Rows」で2つ作成して、「Browse Rows」で確認します。
では、次は、profilesテーブルとusersテーブルを1対1で連携させていきます。
テーブル同士の関連づけ
profilesテーブルとusersテーブルを1対多の関係で関連づけます。
usersテーブルに行って、Modifyを選んで、新しいカラムを作成します。
Foreign Keyの設定
Add Foreign Keysしてください。
Relationshipsタブにいきます
users
Nameはprofileのまま、Saveします。
profiles
Nameはuserのまま、Saveします。
これで、profilesテーブルとusersテーブルを1対1で連携できました。
データを追加していきましょう。
データの追加
usersテーブルから見ると
-
users.name= john のprofile_idにprofiles.nickname= Jon のprofiles.idを -
users.name= bob のprofile_idにprofiles.nickname= bobby のprofiles.idを
割り当てていきましょう
関連づけました。
クエリで確認しましょう
usersから見る
profilesから見る
本日は以上です。
次回以降で、また別のHasuraのリレーションシップ(多対多を)見ていきます!
参考
アウトプット100本ノック実施中











