見出し画像

テーブルの関係が「多対多」ならリレーションを実装できない?【ノーコード・ツールGlide】

今日は、多対多のリレーションをそのまま実装する話です。テーブルが多対多の関係のままでは、そのリレーションを実装するのが難しい、というのが前回までのお話でした↓。

しかし、Glide上では、多対多の関係のテーブル間でリレーションを実装できる、とも話ました。さあ、今日はその続きですよ~。

気になる方は続きをご覧ください😁。

別に「多対多」でもいいんです、最初は…

まずは、アプリを作るにあたっての、データの整理の仕方を少しだけさせてくださいね。

実世界をデータベースに落とし込むために、情報を整理する過程は2段階に分けられます。

テーブルが多対多の関係になることは、「データベースに実装できるかはさておき、実世界のデータの構造を整理する(概念モデリング)の段階」では構いません。というかそれが正しい。

が、次の「実際にどうデータベースに実装するかを含めてデータの構造を整理する(論理モデリング)の段階」で、多対多を「2つの1対多」に修正することが多いみたいですねえ。

ようは、「最終的には1対多に変換しようよ」ということと、私は理解しています😅。が、ですよ!今回は、「最終的には1対多に変換しようよ」を華麗にスルーしようというわけです。

ほんまかいな~ということで、やってみますよ。

アプリ上は、1対多が2つ存在する!?

例として紹介するのは、「好きな動物アプリ」です。前回の記事で、「人が動物が好きである」の関係は、「多対多」になってしまったことを思いでしてください。例えば、あるユーザーは犬も猫も好きだし、猫が好きなユーザーは、〇〇さんも△△さんもいます、みたいな。

それを踏まえてアプリを眺めましょう!ユーザーの一覧があります。その一つをタップすると、詳細画面が表示されます。

そこに、そのユーザーが好きな動物の一覧が表示されます。ユーザーと動物の関係は、1対多ですなあ。

別タブに動物の一覧もあります。こちらの詳細画面はどうでしょうか?

はい、動物とユーザーの関係は、やはり1対多ですな。

『ということは、「ユーザー」テーブルと「動物」テーブルの他に、もう一つテーブルを作ってリレーションを作ったんですねえ!』と予測できます。「好き」テーブルとか😆!?それを「中間テーブル」といいます。

じゃ実際テーブルを見てみましょう!

中間テーブルがない!

ということでGlideのデータエディタを見てみます。おや、テーブルが2つだけ??

ユーザーのテーブルは、こうです。リレーションカラムがありますね!これを使ってユーザー詳細画面に好きな動物を表示していたんですね。

動物のテーブルは、こうです。やはり、ユーザーテーブルへのリレーションがあります。これを使って、動物詳細画面に、その動物が好きなユーザーの一覧が表示されていた、ということですな。

ということは、中間のテーブルが本当に存在しないまま、リレーションを実装してしまった!ということになりますね!😅

どういこと?続きはまた明日~。

では、ビーダゼーン!

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






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