見出し画像

【Glide】データ設計の巻:イベント管理アプリを作ろう!

年末が近づいていきましたね~。皆さん、イベントが目白押しでしょうか?そうでもない?私もそうですけどw。

さて、イベントに参加する予定でパンパンな皆さまも、そうでもない皆さまも「イベント管理アプリ」を作ってみませんか?

イメージ

というのも、実際に役立つアプリであるだけでなく、大いにアプリ制作の練習になるからです。特に、リレーションシップをどう設定するかを考えるいい練習になります!

ということで、何はともあれ、「データ設計」からです!データがなければ、アプリは作れません。「まずは、データから始めよ。」誰の言葉か知っていますか?今、私が思いついた言葉です(すみませんw)。

では、行ってみよ~!

どのイベントに参加するかを知りたい

こんなアプリを想定します。前提は、こうです。

「一人の保護者に複数の生徒がいます。それらの生徒は、学校のいろんなイベントに参加します。」

アプリでは、「保護者情報」、「生徒情報」、「イベント情報」、「イベント参加情報」を管理し、それらの情報(の一部)をユーザーに提供することで、保護者は生徒がどんなイベントに参加するのかを知ることができます。

とすると、テーブル(エンティティ)の関係は、どうなりますか?例えば、次の通りになります。

画像が小さくてすみません。個別に見ていきましょう!

「1対多の関係」で結ぶのがキモ

まず、一つ目、ER図左側から。一人の保護者は、複数の生徒がいるのでしたね。例えば、二人の息子を同じ学校に通わせているケースがあります。保護者「1」→生徒「多」でエンティティを結びます。

どうする?生徒とイベントは、「多対多」

続いて、「生徒」と「イベント」の関係を考えましょう!

生徒一人は、複数のイベントに参加します。一方、一つのイベントには、複数の生徒が参加します。

まずい、典型的な「多対多」の関係です。この関係のまま、テーブルを調整せずにアプリを作ろうとすると、アプリ制作時に苦労しますよ~(多くのアプリビルダー側が優秀なので、結構ある程度、頑張れるのですが)。

ということで、「参加」という中間テーブルを作り、「多対多」の関係を、「1対多」の関係2つにほどきましょう。

生徒は複数のイベントに参加する

生徒エンティティを、中間テーブルとなる「参加」に紐づけます。

イベントは、複数の生徒に参加してもらう

イベントエンティティは、「参加」テーブルに紐づきます。(※イベントエンティティ一番下の生徒IDは不要ですね。)

ということで、下図のように、中間テーブルをおくことで、「生徒」と「イベント」の仲介がうまくできました~。

はい、以上でデータ設計は大丈夫そうですね。いや、自信はそんなにありませんけれども。

次回は、Googleスプレッドシートでデータを作っていきましょう!

Glide学ぶなら、Udemy

Glideで急いでアプリを作りたいけど、どうすれば?お気持ち察します。でも、心配いりません!UdemyならGlide初心者向けの動画コースが受講できます。このブログ300記事をベースにして生まれました。期間限定のキャンペーンもあります。気になる方は、チェックしましょう!


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