2016-11-28 103 views
0

我正在为学校制作一个系统,我有这个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 ='笔试'。所以我需要检查每个一年级的学生是否在与一年级相关的每个科目(例如数学,西班牙语,历史等)的笔试上都有成绩。如果是,我会做一些事情。如果不是,另一个。

有没有可以检查的查询?我正在考虑由学生检查学生,但我认为效率较低。

回答

1

这种模式似乎没有道理。

为什么course_id会出现在学生桌上?我的猜测是你需要一个student_course表来代表这里的学生和课程之间的多对多关系。

此外,grade_type表似乎是一种微不足道的小额开销。 type不仅仅是grade表上的枚举吗?

+0

grade_type为学校添加了新种类的CRUD。 对于course_id,它可以放在像student_course这样的表格中,但保留在那里并不会造成伤害。它使其他任务更容易。 –

+0

@DavidTG一个学生会不会期望与多个课程相关? –

+0

不,从不。只有一门课程。 –