脱!教養ゼロママ

もう恥ずかしくない!教養のあるママを目指してます!

MENU

データの関連(リレーション)を整理してみる|初心者のアプリ開発|Adalo

f:id:yuka-edu:20210926200143p:plain

こんにちは!ゆかゆかです。

データのリレーションで混乱してしまうとご意見頂いたので、

今日は複数のコレクションを使う場合について整理をしてみたいと思います!

 

↓こちらの選択で悩む方に向けてご説明します。

f:id:yuka-edu:20210927110328p:plain

 

少しでもデータの関係をスッキリさせられるよう頑張ります!

ポイント! 
  • データ関連を図に書き出す
  • 複数選択項目か単一選択項目か考えてみる
  • 英語の説明文をよく読む

 

 

モデルケースの紹介

今回の前提として、ファストフードの「注文」を参考に説明していきます。

ご案内! 

 面倒でしたら、ココはさらっと飛ばして、最後に見直してみてください。

 

▼データ関連のイメージ図

f:id:yuka-edu:20210927105434p:plain

データ関連のイメージ図の見方を紹介

例えば、注文No C001の場合・・・

井上さんが注文した商品は以下の3つです。

商品は3つのジャンルに分類分けされています。

  • J001:バーガー
  • J002:サイド
  • J003:ドリンク

例えば、ハンバーガーのジャンルは「J001バーガー」になります。

コレクションのリレーション

それではコレクションのリレーションの見分け方を確認します!

 

  • Database Collections > ADD PROPERTY > Relationship > コレクション名

と選択していくと、このような選択画面が出てきますね。

f:id:yuka-edu:20210927110328p:plain

  • 上の2つは「1対N」の関係です。
  • 下の1つは「N対N」の関係です。

 

大丈夫です!ゆっくり考えれば、正解が見えきます!

それでは、「1対N」と「N対N」の関係について説明していきます。

補足 

 データベースを経験されている方は、「外部結合・内部結合」と考えられる

 かもしれませんが、別物と捉えてください!

 

N対Nの関係を説明

注文と商品の関係をサンプルに使用します。

f:id:yuka-edu:20210927111355p:plain

まずは上の説明を説明します。

A 注文 can have multiple 商品s

 ▶︎注文には複数の商品が存在する。

A 商品 can have multiple 注文s

 ▶︎商品には複数の注文が存在する。

 

今回の、モデルケースのイメージに注文・商品それぞれの関連を赤枠で明記してみました。

f:id:yuka-edu:20210927105504p:plain

  • 注文は複数商品を選べます。
  • 商品は複数の注文に紐づいています。

→つまり、注文と商品は「N:N」の関係となります。

 

1対N(N対1)の関係を説明

商品とジャンルの関係をサンプルに使用します。

f:id:yuka-edu:20210927112306p:plain

まずは上の説明を説明します。

A ジャンル can have multiple 商品s

 ▶︎ジャンルには複数の商品が存在する。

A 商品 belongs to one ジャンル

 ▶︎商品は一つのジャンルに属する。

f:id:yuka-edu:20210927112318p:plain

さらにもう一つの説明を説明します。

A ジャンル can only have one 商品

 ▶︎ジャンルには1つだけの商品が存在する。

A 商品 can have multiple ジャンルs

 ▶︎商品は複数のジャンルに属する。


今回の、モデルケースのイメージに商品・ジャンルそれぞれの関連を赤枠で明記してみました。

f:id:yuka-edu:20210927105528p:plain

  • 商品は1つのジャンルに属します。
  • ジャンルには複数の商品が存在します。

→つまり、商品・ジャンルは「N:1」の関係となります。

f:id:yuka-edu:20210927112306p:plain

まとめ

今日はご質問いただいた、データコレクションのリレーション設定について、考え方を整理してみました。

それぞれのコレクションに対して、関連させると何個存在するか、エクセルなどでまとめてみると間違わずに設定できます。

個人的な感想としては、リスト表示する際に、複数選択を許すか、単一選択を許すかを判定するための設定だと思っています。

複数選択か単一選択か考えながら設定してみるといいかもしれません。

 

一度ではスッとは理解できないかもしれませんね。

わからないところはコメントやお問い合わせフォームより教えていただけると、ありがたいです。

 

最後までご覧いただき、ありがとうございました。

♥・*:.。 。.:*・゚♡・*:.。 。.:*・゚♥

 

▽ NoCodeアプリ Adalo

www.adalo.com