こんにちわ。
PHP初心者で、練習のために教師が更新可能な生徒向けのアンケートを作っています。
そこで、データベース設計について質問があります。
概要なのですが、
ーコンテンツをアップデート可能なのは1人しかいない
ー1年制のプログラムで4学期あり、学期毎にアンケートを行う(1学期は3ヶ月です)
ープログラムは6つあり、将来増える可能性もある
ープログラムの中にグループ(クラス)があり、2学期毎に生徒が入学してくるのでグループが増える。
ープログラムごとに教師が複数人勤めている。
ー生徒が学期毎に答えるアンケートは3つあり、学校のプログラムに対するもの、自分がうけている授業に対するもの、自分が授業を受けている教師に対するものである。(生徒がログインしたときのトップ画面に、3つのアンケートへ飛べるリンクをはる予定です。)
ーアンケートは基本的に4択と100字程度のコメントで構成されていて、教師側でアップデート可能である。
ー生徒はそれぞれ学生番号が与えられており、それを使ってアンケートページにログインできる。
また、パスワードはないものとする。
私の質問というのはデータベースのテーブルの関連付けについてです。
生徒にはそれぞれ学績番号が与えられているため、ログインした時点でどのプログラムに属するかがわかります。
ユーザー(生徒)視点のイメージとしては、ログインするとトップ画面に3つのアンケートに飛ぶことができるリンクがあり、それぞれのアンケートに答えます。
例えば、自分が授業を受けている教師に対するアンケートに答えるときは、ドロップダウンリストを3つ用意してプログラム、授業名、教師名をそれぞれ選んでからアンケートに回答するかたちをイメージしています。
そのため、データベースのテーブル同士の関連付けが重要になってくると思うのですが、いくつか疑問があります。
まず、questionsテーブルはinstructors,courses,programs,answers,student_answer テーブルと関連付ける必要があると思うのですが、どのように関連付けるべきが迷っています。
というのも、questionsテーブル上は他テーブルのIdで占められており、関連付いてはいると思うのですが不自然に感じます。
それと添付した画像は、私なりに他の方からの助言などを参考にして、データベースの設計を考えてみました。
穴だらけだとは思うのですが、改善できる点など助言いただければ幸いです。
初めての練習としてはハードなものを仮定してしまったかと思っているのですが、やり始めたからには完成させたいと思っています。
駄文になってしまったのですが、回答いただければ幸いです。
よろしくお願いします。
![イメージ説明]WIDTH:600![イメージ説明]WIDTH:600
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。