我正在为学校制作一个系统,我有这个mySQL表。这些名字是不言自明的:
student: id name course_id
course: id name
subject: id name
subject_course: id subject_id course_id
grade: id type grade
grade_type: id name
我需要检查某门课程的每个学生是否在与该课程相关的每个科目上都有X等级。 让我们说grade_type ='书面测试'。因此,我需要检查一年级的每个学生是否在与一年级相关的每个科目(例如:数学,西班牙语,历史等)的笔试中都有成绩。如果是的话,我会做一些事情。如果没有,另一个。
是否有可以检查的查询?我正在考虑由学生检查学生,但我认为效率较低。
答案 0 :(得分:1)
这个架构似乎没有意义。
为什么course_id会成为学生桌上的字段?我的猜测是你需要一个student_course
表来表示学生和课程之间的多对多关系。
此外,grade_type
表似乎是一种微不足道的额外开销,几乎没有价值。 type
表上的grade
不仅仅是一个枚举吗?