テーブルの関係が「多対多」ならリレーションを実装できない?【ノーコード・ツールGlide】
今日は、多対多のリレーションをそのまま実装する話です。テーブルが多対多の関係のままでは、そのリレーションを実装するのが難しい、というのが前回までのお話でした↓。
しかし、Glide上では、多対多の関係のテーブル間でリレーションを実装できる、とも話ました。さあ、今日はその続きですよ~。
気になる方は続きをご覧ください😁。
別に「多対多」でもいいんです、最初は…
まずは、アプリを作るにあたっての、データの整理の仕方を少しだけさせてくださいね。
実世界をデータベースに落とし込むために、情報を整理する過程は2段階に分けられます。
テーブルが多対多の関係になることは、「データベースに実装できるかはさておき、実世界のデータの構造を整理する(概念モデリング)の段階」では構いません。というかそれが正しい。
が、次の「実際にどうデータベースに実装するかを含めてデータの構造を整理する(論理モデリング)の段階」で、多対多を「2つの1対多」に修正することが多いみたいですねえ。
ようは、「最終的には1対多に変換しようよ」ということと、私は理解しています😅。が、ですよ!今回は、「最終的には1対多に変換しようよ」を華麗にスルーしようというわけです。
ほんまかいな~ということで、やってみますよ。
アプリ上は、1対多が2つ存在する!?
例として紹介するのは、「好きな動物アプリ」です。前回の記事で、「人が動物が好きである」の関係は、「多対多」になってしまったことを思いでしてください。例えば、あるユーザーは犬も猫も好きだし、猫が好きなユーザーは、〇〇さんも△△さんもいます、みたいな。
それを踏まえてアプリを眺めましょう!ユーザーの一覧があります。その一つをタップすると、詳細画面が表示されます。
そこに、そのユーザーが好きな動物の一覧が表示されます。ユーザーと動物の関係は、1対多ですなあ。
別タブに動物の一覧もあります。こちらの詳細画面はどうでしょうか?
はい、動物とユーザーの関係は、やはり1対多ですな。
『ということは、「ユーザー」テーブルと「動物」テーブルの他に、もう一つテーブルを作ってリレーションを作ったんですねえ!』と予測できます。「好き」テーブルとか😆!?それを「中間テーブル」といいます。
じゃ実際テーブルを見てみましょう!
中間テーブルがない!
ということでGlideのデータエディタを見てみます。おや、テーブルが2つだけ??
ユーザーのテーブルは、こうです。リレーションカラムがありますね!これを使ってユーザー詳細画面に好きな動物を表示していたんですね。
動物のテーブルは、こうです。やはり、ユーザーテーブルへのリレーションがあります。これを使って、動物詳細画面に、その動物が好きなユーザーの一覧が表示されていた、ということですな。
ということは、中間のテーブルが本当に存在しないまま、リレーションを実装してしまった!ということになりますね!😅
どういこと?続きはまた明日~。
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。た
この記事が気に入ったらサポートをしてみませんか?