Подтвердить что ты не робот

Нормализация базы данных для системы школьного управления

Я создаю систему для системы управления школой и придумаю прилагаемую схему базы данных.

Database diagram

Вот как работает система:

  1. В школе много учеников и учителей. Он также имеет много курсов (предметов) преподавал. Уровень обучения может иметь много назначенных курсов. Эти курсы, в свою очередь, будут назначены учащимся в определенном классе.
  2. Уровни студентов подразделяются на классы и секции. Ученик может быть в 5 классе, но если ученики 5 класса огромны, они делятся на разделы. Например: 5 класс, раздел A, 5 класс, раздел B.
  3. Студенты размещаются в уникальных классных комнатах. Классная комната будет уникальной во всем. Класс 5 класса А секции 2010 года будет отличаться от класса 5 класса Секции А 2011 года.
  4. Студенты назначаются родителями. Родитель может иметь более одного ученика в школе.
  5. Один или несколько классных комнат могут быть назначены учителю.
  6. Ученики ежедневно посещают учителей
  7. Будет много видов экзаменов. Результаты экзаменов сохраняются для каждого предмета (курса).

Я новичок в нормализации базы данных и был бы рад, если бы кто-нибудь дал мне несколько советов, если база данных выглядит хорошо или нет.

EDIT:

Кроме того, будет только одна точка входа. В приведенном выше случае при входе в систему пользователь должен будет выбрать тип пользователя из выпадающего списка. Этот выпадающий список будет использоваться для запроса соответствующей таблицы для входа в систему. Другой альтернативой является использование общей таблицы user, в которой будет храниться user_id, email, password, last_login_date, last_login_ip, но будут храниться другие подробности в соответствующих таблицах, таких как student, parent, teacher. Итак, каков предпочтительный/правильный способ его реализации?

4b9b3361

Ответ 1

Вы вообще не моделируете GRADE_SECTIONS.

Если в вашей школе не будет огромных программ по сносу и строительству, каждый летний отпуск в классе будет таким же. Это задания, которые меняются каждый год. Таким образом, CLASSROOMS следует назначать отдельному объекту GRADE_SECTION вместо объединения SECTIONS и CLASSROOMS, как вы это делаете сейчас.

Студенты должны быть назначены GRADE_SECTIONS, а не CLASSROOMS.

КУРСЫ должны иметь много EXAMS, а не много EXAM_RESULTS. Просто не имеет смысла, что французский экзамен может быть взят учащимися, изучающими математику и русский язык.