2014-11-03 1 views
0

Я пытаюсь создать схему базы данных для создания отчета о состоянии сети. В отчете указывается название школы, имя студента, имя учителя, количество отсутствующих дней, количество дней с задержкой, текущий общий класс учащегося и имя всех заданий, выполненных учащимся включая дату, категорию и оценку для каждого из этих заданий. Следующее - это то, что мне удалось выяснить до сих пор. Кто-нибудь есть предложения по улучшению этой схемы?Схема базы данных для студенческого отчета

School (school_id, school_name, course_id) 

Course(course_id, course_name, teacher_id, student_id) 

Teacher(teacher_id, teacher_name, student_id) 

Student(student_id, student_name, grade, absent_days, tardy_days, assignment_id) 

Assignment(assignment_id, assignment_name, assignment_date, category, score, course_id) 
+0

Может ли преподаватель преподавать в нескольких школах? –

+1

Вы должны прочитать книгу или учебник о реляционных БД. Потому что, очевидно, вы даже не знаете концепцию внешних ключей. В вашей схеме учителю присваивается один учитель, школа имеет только один курс, у ученика может быть только одно задание, ... –

+0

James Bond ... эта база данных будет содержать только данные для одной школы. – Daron

ответ

0

Предлагаю вам удалить курс курса из школы. Студент_ид из курса & учитель. Назначение_ид из ученика, как описано ниже. Кроме того, я, вероятно, разделил бы присвоения на таблицу присвоения и отметки.

Это приводит к тому, что в школе может быть несколько учителей, которые учат несколько классов, которые могут иметь несколько назначений. Студенты учатся в школе и могут иметь несколько заданий. Это довольно простая модель, и вы можете подумать о добавлении таблицы «Бронирование», в которой вы храните то, что студенты забронировали на каких курсах. Кроме того, возможно, что несколько преподавателей учат курс, а учителя работают во многих школах, или курс предлагается в нескольких школах. Только некоторые идеи, чтобы думать о ...

+0

Я просто хочу убедиться, что я понимаю. По «таблице бронирования» вы имеете в виду список классов, в котором перечислены ученики для каждого класса? Например, например: Roster (course_id, student_id) – Daron

+0

Да, вот что я имею в виду. –

+0

Ещё один вопрос. Какова цель/логика удаления student_id из курса и учителя? – Daron

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