先日行われた Database Day で、グループに分かれて
データベースを設計する
というセッションがありました。
えムナウさんによる出題が素晴らしかったので紹介します(えムナウさんの許可はいただきました)
えーと、確かこんな感じです。間違っていたら、誰かご指摘ください。
時間割を記録するためのデータベースの設計を行う
時間割は曜日と時限があり、月~金曜日は 6 時限、土曜日は 4 時限である
学年とクラスがある
各学年とクラスには担任がいる
担任はホームルーム・道徳など 3 つの科目を受け持ち、これも時間割に含める
その他、数学・社会などの教科がある
先生は担当教科を 1 つ持っている
教科は、理科なら理科室・音楽なら音楽室など特定の場所で必ず行われるものと、そうでないものがある。
体育だけは、運動場と体育館で行われる。
そうでないものは、各クラスの教室で行う。
先生は一人なので同時に割り当てることはできない
場所も一つなので同時に割り当てることはできない
以上だったかと思います。
実質 30 分程の時間の中で、僕らのグループは以下のように答えを捻り出しました。
ちなみに、各グループごとに設計結果は異なっていましたw
えムナウさんから近いうちに回答が出るようですが、その前に皆さんも是非挑戦してみると良いかと思います。
----------------------
時間割マスター
Id
曜日
時限
----------------------
先生マスター
Id
氏名
----------------------
クラスマスター
Id
学年
クラス
担任先生Id
----------------------
場所マスター
Id
場所名
----------------------
教科マスター
Id
教科名
----------------------
場所教科マスター
Id
場所Id
教科Id
----------------------
先生場所教科マスター
Id
先生Id
場所教科Id
----------------------
時間割
Id
クラスId
時間割Id
先生場所教科Id