高等学校のデータベース設計作業の一環として、私はクラステーブルに固執しています。これまでに作成されたテーブルは次のとおりです:教師、科目、等級データベースの設計提案
Students
--------------
Id
name
Grades (grade 1,2,....9,10)
------------------
id
description
term
Subjects (science,maths...)
-------------------
id
name
grade_subject (subjects tought in grades)
----------------
id
grade_id
subject_id
teacher
---------------------
id
name
teacher_subject (teachers who are assigned to teach subjects in particular grade)
---------------------
id
teacher_id
grade_subject_id
私はteacher_subjectテーブルのテーブル設計について確信がありません。この表は、良いデザインではないかもしれないgrade_subject_idのIDを利用しています。このテーブルに2つのFK、1つのgrade_idとsubject_idが必要ですか?
また、特定の教師によって特定の科目や学年について行われた授業の数をさらに格納する必要があります。
は、この場合におけるこの表のフィット感になります。
Class (stores daily teaching schedule)
-----------------------------------
id
*teacher_id
grade_id
subject_id*
*or only teacher_subject_id from teacher_subject table*
date
start_time
end_time
status (conducted/cancelled/postponed)+
そして最後に、クラス
attandants
--------------------
student_id
class_id
に出席者に関する情報を格納するテーブルの任意の提案をいただければ幸いです。
あなたの答えと時間はAPCに感謝します。私の貧しい脳が理解できないということは2つあります。 1)サロゲートキー:ユニークな(自動増分)整数では十分ではないでしょうか?複合主キーを使用する利点は何ですか? (2)teacher_subjectテーブルでは、なぜgrade_idとsubject_idがforeign keyとして使用されているのに対して、grade_idとsubject_idはforeign keyとして個別に使われていますか?私の無知のために申し訳ありません。しかし、あなたが私にこれを説明できるなら、私はあなたに感謝します。良い週末を。 –