以下是我面临的设计问题的类似(和简化)示例:
假设您有学生、班级和成绩。学生可以在许多不同的班级。每个班级有许多不同的学生。每个(学生,班级)对都有一个等级。
我应该像这样布局数据库(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 仍然感觉有点过于复杂)。
你有什么建议吗?谢谢。