![見出し画像](https://assets.st-note.com/production/uploads/images/77577708/rectangle_large_type_2_bcf56c390372d1764ba701d6ce412750.png?width=1200)
【Airtable】リレーションシップ:テーブル間の連携を正しく理解する
リレーションシップ、、、。それは、リレーショナル・データベース(RDB)を扱う上で、最重要の概念(の一つ)です。Airtableでも、上手に扱えるようにしたいものです。
ここは、一つ何回かの記事に分けてリレーションシップを丁寧にご紹介していきたいと思います。とはいえ、私は、RDBの専門家ではありませんから、専門的過ぎること専門家に任せることにします。このブログでは、
どうやればAirtable上でリレーションシップを設定できるか?
リレーションシップを設定できると、どのように別テーブルからデータを取得できるのか?
SQLとの違いは何か?
に焦点をぎゅーっと絞ってお話ししたいと思います。自分の実力以上の内容に挑もうとしております。が、まあ、、、生暖かい眼でお付き合いください。実用的な内容としたく存じます!
リレーションシップ設定の解説動画
ブログを書く前に、リレーションシップの設定に関する動画を作成しました~🙂。
とりあえず、全体像を知るには、こちらの動画を2倍速で眺めていただけるとよろしいかと思います(チャンネル登録もぜひどうぞ~😆)
ブログの方は、動画の内容を補足するだけでなく、「表結合」の考え方などより踏み込んだ内容にします。風呂敷広げ過ぎかな~💦。
テスト事例:得意先と担当者を紐づけよう
動画の内容に沿って、リレーションシップの設定の解説をしてまいります。テスト事例として、担当者と得意先のテーブルのリレーションシップを設定したいと思います。
1対多の関係のテーブルを紐づける
![](https://assets.st-note.com/img/1651381844636-xpVmUVwTLr.jpg?width=1200)
一人の担当者は、「複数」の得意先(ようはお客さんね)を担当します。一方、得意先には、「一人」の専任の担当者がいます。とすると、担当者と得意先は、「1対多」の関係となっています。リレーションシップを組むにあたり、もっとも典型的な多重度です。
テーブル1)担当者テーブル
担当者テーブルの中身を確認します。スカスカですね。「担当者コード」と「担当者名」しかないです。実質的に内容のある列は、「担当者名」だけですね😅。
![](https://assets.st-note.com/img/1651382138295-Jvp10nmMwt.jpg?width=1200)
テーブル2)得意先テーブル
続いて「得意先テーブル」です。こちらは、内容が充実しています。お客様のコード、名前、住所、電話番号の列があります。そして、ポイントは「担当者コード」という列がある点です。
![](https://assets.st-note.com/img/1651382258494-7zddgAqY64.jpg?width=1200)
「担当者コード?担当者の名前とか部署とかの列は、入れないの?🤔」
素晴らしい着眼点です。おっしゃる通り、そういった情報を取得して使いたいのです。ですが、担当者の情報は一つのデータの塊(エンティティ)として管理した方が都合がいいのです。
もしそれらの担当者情報もお得先テーブルに入力してしまうと、お得意先が増えるたびに、担当者の情報を繰り返し何度も入力することになっちゃいますからね。それなら、別テーブルで担当者を管理して、必要な都度データをそのテーブルから取得した方が、効率がいいです。
「担当者コード」を通じてガッチャンコ
その担当者テーブルから情報を取得するためのカギになるのが、「担当者コード」です。これが、いわゆる「外部キー」に相当します。担当者テーブルの主キー(担当者コード列)と照合します。
下の画像をご覧ください。テーブル間でリレーションシップを組むことにより、どうレコードがリンクするのかを示したものです。
![](https://assets.st-note.com/img/1651382538245-kg99v8utB3.jpg?width=1200)
例えば、山本さんは、2社を担当していますね。一方、太田さんは、どのお得意先も担当していません。どのようにレコードがリンクするかイメージが湧いたでしょうか?
相手のテーブルのレコードとつなげる
リレーションシップを組んだ結果、どのようにデータを取得できるでしょうか?
下の画像をご覧ください。相手のテーブルで紐づいたレコードを自分のレコードに持ってくることができるようになります。
![](https://assets.st-note.com/img/1651382837974-LBfsE0IRk6.jpg?width=1200)
このように、まるで自分のテーブルにデータが存在するかのように、別テーブルのデータも含めて、活用することができるようになります。
はい、以上がテスト事例としてご紹介したいことの概要でした。
つぎは、実際に設定をしてみますよ~。
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。