2016-11-28 42 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

不,從不。只有一門課程。 –