2016-11-28 8 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 на каждом предмете, который связан с этим курсом. Скажем, class_type = 'письменный тест'. Поэтому мне нужно проверить, есть ли у каждого ученика 1-го класса степень по письменному тесту на КАЖДОМ предмете, относящемся к первому классу (пример: математика, испанский, история и т. Д.). Если да, я делаю кое-что. Если нет, другое.

Есть ли запрос, который может проверить это? Я думал о студенте, проверяя студента, но я думаю, что он менее эффективен.

ответ

1

Эта схема не имеет смысла.

Почему поле курса должно быть полем на столе ученика? Я предполагаю, что вам нужна таблица student_course, чтобы представить отношения между многими и многими между студентами и курсами здесь.

Кроме того, таблица grade_type выглядит вроде тривиальной и дополнительной накладной с небольшим значением. Может type не просто перечислить на grade стол?

+0

класс_type имеет CRUD для школы, чтобы добавить новые типы типов. Для курса_ид он может быть в таблице типа student_course, но это не повредит, чтобы сохранить его там. Это облегчает другие задачи. –

+0

@DavidTG. Неужели ученик никогда не ожидает, что он будет связан с более чем одним курсом? –

+0

Нет, НИКОГДА. Только один курс. –

Смежные вопросы