![見出し画像](https://assets.st-note.com/production/uploads/images/70427342/rectangle_large_type_2_ac709b23830f4453206c1245c5e3d5f5.png?width=1200)
どうやったらリレーション組める?多重度の話【ノーコード・ツールGlide】
今日は、2つのテーブルの「多重度」と「リレーション」の話をします。
「タジュード?何それ、おしゃれなお菓子?😄」
いや、食べ物じゃないです…💦。テーブルとテーブルの間の対応関係の話なんです。
「1対多」の関係のとき、リレーションが組める
今、テーブルとテーブルの対応関係が、「1対多」なる例を考えます。この「1対多」のときこそ、リレーションを組むのに適するのです(いろいろ例外はあるでしょうが😅)。
「学級(クラス)」と「生徒」の関係を考えます。一つの「学級」には、複数の生徒がいます。
![](https://assets.st-note.com/img/1642796328563-SXTLcbuZWj.png?width=1200)
一方、一人の「生徒」は、一つの「学級」にしか属しません。「私は、3年1組と3年3組の生徒なの!」というのはないですよね~。
![](https://assets.st-note.com/img/1642797402039-fM7JzfnMhi.png?width=1200)
このとき、「学級」が「1」に対して、「生徒」が「多」という関係が成り立ちます。
多対多のとき、リレーションが組めない!?
それでは、こんな関係はどうでしょう?「ある人が、ある動物を好きである」。この文章からテーブル(正確にはエンティティ)になる要素を抜き出して、対応関係を考えます。主人公は、「人」と「動物」ですね!
「ある人は、複数の動物が好き」である。これは分かりますよね。猫も好きだし、犬も好きだし~🧡。
![](https://assets.st-note.com/img/1642797032484-vA71bn880R.png?width=1200)
でも、動物から見たらどうでしょう。猫ちゃんには、花子さん、太郎さん、次郎さんというファンがいるとしたら?
![](https://assets.st-note.com/img/1642797288761-q5FH1gUS9Q.png?width=1200)
うん、人から見ても、動物から見ても1つのアイテム(人、動物)に、複数のアイテム(動物、人)が対応しますねえ。。。
このとき、「人の属性を持つテーブル」と「動物の属性を持つテーブル」の関係は、「多対多」となります!
![](https://assets.st-note.com/img/1642798572478-4KEHNQ9Jo0.png?width=1200)
このままですと、「人の属性を持つテーブル」と「動物の属性を持つテーブル」間で、フツーはリレーションの設定ができないんです😲。
ならば、頑張って「1対多」の関係に変換する!
じゃあ、どうするのか?よくある手口、もとい方法は、動詞である「好き」もテーブルにしてしまうんです!さらに
・一人の「人」は、複数の「好き」がある。
・一つの「動物」は、複数の「好き」がある。
のように、1つの「多対多」を、2つの「1対多」に変換します。
![](https://assets.st-note.com/img/1642798371373-3H8wQwpSmI.png?width=1200)
こうすれば、「多対多」が解きほぐされて、2つリレーションを組めるようになります。いえぃ😁。
こんな説明で、分かっていただけましたか?。。。ただ、、、話には続きがあります。
でも「1対多」に直すなんて面倒だ
さきほど、「多対多のままではリレーションを組めない」という話をしました。。。フツーは。。。
じゃあ、フツーじゃない場合は?はい、そのフツーじゃない場合を本当は紹介したかったのです!
「好き」という中継役のテーブル(連関エンティティとか言うそうの)を作らなくても、Glideのアプリビルダーとデータエディタをうまく使えば、リレーションの設定ができてしまうのです。
ということで、今日はここまで。
続きは、明日書きます。
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。
この記事が気に入ったらサポートをしてみませんか?