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

【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の設定について解説していきます。

では、また後編でお会いしましょう!