以下は、私が直面している設計の質問に類似した(そして単純化された)例です。
生徒、クラス、成績があるとします。学生は多くの異なるクラスに参加することができます。各クラスには多くの異なる生徒がいます。そして、すべての(学生、クラス)ペアには1つの成績があります。
データベース(mysqlデータベース)を次のようにレイアウトする必要があります:
オプション1)
students table - (student_id, student_name)
classes table - (class_id, class_name)
students_classes table - (student_class_id, student_id, class_id)
grades table - (student_class_id, grade)
オプション2)
students table - (student_id, student_name)
classes table - (class_id, class_name)
grades table - (student_id, class_id, grade)
それとも他のものとして設計する必要がありますか?オプション2は現在は単純に見えますが、将来的には、各(student_id、class_id)ペアに関連する他の統計が必要になる可能性があります(この場合、オプション1は少し良いように見えますか?オプション1はまだ少し複雑に感じます)。
おすすめは何ですか?ありがとう。