見出し画像

リレーションカラムには、こんな使い方もあった【ノーコード・ツールGlide】

Glideでテーブルのリレーションをどう活かせばいいかお悩みですか?きっと、そういう方は多いですね、きっと(私もそうです😅)

リレーションは、2つのテーブルが「1対多」の関係にあるときに組むのが基本です。

今回は、この多重度(1対多)に着目してみます。具体的には、「1」側のテーブルでリレーションカラムをどう使うか、その一例をご紹介しますよ。

リレーションカラムを設置するとき、1側のテーブルに設定しているのか、多側のテーブルに設定しているのか、意識していますか??

「いや、どうだろう…😅」と思った方は、いろいろ危ういですよ~💦。でも大丈夫!続きを確認しましょう!

1対多の関係を確認しよう

使用例としてご紹介するのは、ツイートができるアプリです。一つ目のタブには、ユーザー一覧があります。

ユーザー一覧

彼らがツイートすると、それがユーザーテーブルとは、別のテーブル「ツイートテーブル」に溜まります。

それを別のタブで一覧表示させます。例えば、こんな感じです。

ツイート一覧:ユーザーが複数のツイートをすることがある

データエディタ側でテーブルを確認しましょう。テーブルが2つありますね。ユーザーとツイートです。

この2つのテーブルの関係(多重度)を考えてみてください🤔。「一人のユーザーが複数のツイートをする」ですね。「一つのツイートを複数のユーザーが行う」「一人のユーザーは、一つのツイートしかできない」とかは、おかしいですね。

とすると、ユーザーとツイートの関係は、1対多となっています。以下では、「1」の側のテーブル(ユーザー)に作るリレーションカラムをどう使うかを考えます。

1側のテーブルにリレーションカラムを設置

ではでは、さくっと「1」の側のテーブル(ユーザー)にリレーションカラムを作りましょう。

完成形は、次の画像のとおりです。

設定を確認しますか😄。リレーションのキーとなっているのは、いずれのテーブルもメールアドレスのカラムですね。

Match MultipleはONです。一人のユーザーに、ツイートテーブル内の複数のツイートと紐づけますからね。1側のリレーションの設定では、Match Multipleは、基本的にONになることを覚えておいてくださいね~😆。

これで、とりあえず、1側のテーブル(ユーザー)にリレーションは設定できましたよ。

次は、データエディタで何しましょう?

「あ~、、知ってる、知ってる。Lookupカラムを追加して参照先のカラムのデータを引っ張ってくるんでしょう?😆」

素晴らしい😊。Glideの基本的な使い方をご存じなのですね。でも、今回は、違うんだな、これが~!!

実は、これ以上何もしません。リレーションカラム単体でもリレーションを活用する方法は、あるのですよ!

リスト・コンポーネントとリレーションカラムを紐づける

では、アプリ側で何を実現したいか、見てみましょう!ユーザーの一覧があありますね。例えば、加藤さんをタップします。

すると、詳細が画面が開きます。下の方に注目ください!加藤さんが行ったツイートが表示されていますよ!この機能を実装するのです。

ツイートの一覧用として、詳細画面にインライン・リスト・コンポーネントを設置します。

データの紐づけ先は、「ユーザー」?、「ツイート」?
いえいえ、先ほどのリレーションカラムです!リスト・コンポーネントは、テーブルだけでなく、リレーションカラムにも紐づけられるんですよ!

このように、リレーションカラムを通じて、多側で紐づいているアイテムを表示できます。

イメージが湧かないですか?では、データエディタをもう一回見てみましょう。

リレーションカラムを見ると、佐藤さんは、どうやら3つ以上のツイートをしていることが分かりますね。リレーションカラムは、参照先(ツイートテーブル)中で佐藤さんのツイート(アイテム)だけを引っ張ってきていることが分かります。

佐藤さんの詳細画面にリストを設置すると、この佐藤さんのアイテムだけが表示されるという仕組みです。

まとめ

一応、まとめます。

次のことをすることで、「多」側のテーブルの一致アイテムだけを、「1」側の詳細画面に表示できます。

・1対多のリレーションを組んだとき、1側のテーブルにリレーションカラムを一つ設置する。
・1側のテーブルの詳細画面で、リスト・コンポーネントを設置する。
・そのリストコンポーネントと、リレーションカラムを紐づける。

リレーションは、何だか小難しいですね。。。実際やってみるのが早いです。ぜひお試しください!

では、ビーダゼーン!

※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。


この記事が気に入ったらサポートをしてみませんか?