【AppSheet】“Ref”ってなに?初心者でもわかるデータのつながり入門

今回はAppSheetを使う上で欠かせない機能である「Ref」について解説していきます。
システムについてある程度詳しい人ならなんとなイメージができると思いますが、IT未経験の方にとっては最初の関門です。
この"Ref"というのは、AppSheetに限らず、データベースの基礎知識としても非常に重要です。
そのため、本記事ではRefの概要と簡単な実装方法について紹介します。
より詳細な使い方については後編で解説しますので、「基本は理解している」という方は後編から読んでいただいても問題ありません。
そもそもRefって何?
AppSheetにおける"Ref"とは、
「テーブル(表)同士をつなぐための関係づけの仕組み」
のことです。
とはいえ、これだけではイメージが湧きにくいと思うので、シンプルな出退勤アプリを例に解説していきます。
具体例で理解しよう
テーブルの設定は以下のように設定したとします。
- 出退勤テーブル
カラム:出退勤ID、従業員名、出勤日時、退勤日時
従業員が出勤したら出勤時間を記録し、退勤したら退勤時間を記録するというシンプルなテーブルです。
一見、このままでも良いように思えますが、これだと大きな問題が発生します。
それは、
従業員の情報が変わったとき
です。
たとえば、佐藤A子さんが結婚し、名字が田中に変わったとします。
その場合、過去に登録した「佐藤A子」の記録すべて「田中A子」に修正しなくてないけません。

これは非常に手間がかかります。
新しいテーブルを用意する
そこで、以下のように従業員を管理する専用テーブルを作成します。
従業員テーブル
カラム名:ID、従業員名

また、出退勤テーブルの従業員名カラムを次のように変更します。
- 出退勤テーブル
カラム名:出退勤ID、従業員ID、出勤日時、退勤日時
そして、
出退勤テーブルの従業員IDに、従業員テーブルのIDを入力するようにします。

そうすると、従業員IDで二つのテーブルが結びついているため、従業員名をひとつ変更すれば、出退勤テーブルを一行ずつ変更する必要はありません。

しかし、これだけでは不十分です。
なぜなら、これでは人間の目から見てデータが関連しているとわかっても、システムにはわからないからです。
そこで登場するのが「Ref」です。
Refを使ってテーブル同士をつなぐ
では、ここでAppSheetの画面で先ほどのテーブルを再現します。
テーブルは以下の通りです。
- 出退勤テーブル

- 従業員テーブル

出退勤テーブルの従業員IDの"Type"をRefとします。そして、"Type Details"の"Source table"を「従業員テーブル」にします。
これにより、「出退勤テーブルにある従業員IDは、従業員テーブルのIDと結びついているよ」ということをシステムにもわからせることができます。
実際の挙動をみてみる
では、実際に出退勤データを登録してみましょう。
従業員テーブルには事前にこの以下のように登録してあります。

出退勤テーブルviewから従業員ID登録しようとすると・・・

従業員テーブルに登録されてあるIDのみが表示されています!
では、出退勤データを登録してみましょう。

出退勤テーブルには従業員IDが格納されました。
ちなみに、従業員テーブルの"LABEL?"のチェックを「従業員名」に変えると、view上では従業員名が表示されます。

↓

コラム:正規化
ここまでで解説したテーブルの一連の設計を、ITの世界では"正規化"と言います。
この"正規化"の出来具合によって、システムの質が大きく変わりますので、興味がある方は是非調べてみてください。
後編へ続く!
ここまでで、Refの基礎的な内容を解説しました。
後編では、より細かいRefの設定について解説していきます。
では、また後編でお会いしましょう!