Я создаю систему для системы управления школой и придумаю прилагаемую схему базы данных.
Диаграмма базы данных http://oi40.tinypic.com/15x21ig.jpg
Вот как работает система:
- В школе много учеников и учителей. Он также имеет много курсов (предметов) преподавал. Уровень обучения может иметь много назначенных курсов. Эти курсы, в свою очередь, будут назначены учащимся в этом конкретном классе.
- Уровни учащихся подразделяются на классы и секции. Ученик может быть в 5 классе, но если ученики 5 класса огромны, они делятся на разделы. Например: 5 класс, раздел A, 5 класс, раздел B.
- Учащиеся размещаются в уникальных классных комнатах. Классная комната будет уникальной во всем. Классная комната 5 класса Секция A 2010 года будет отличаться от классной комнаты 5 класса Секция A 2011 года.
- Учащиеся назначаются родителями. Родитель может иметь более одного ученика в школе.
- Один или несколько классных комнат могут быть назначены учителю.
- Посещаемость для студентов принимается их учителем ежедневно
- Будет много типов экзаменов. Результаты экзаменов сохраняются для каждого предмета (курса).
Я новичок в нормализации базы данных и был бы рад, если бы кто-нибудь дал мне несколько советов, если база данных выглядит хорошо или нет.
EDIT:
Кроме того, будет только одна точка входа в систему. В приведенном выше случае при входе в систему пользователь должен будет выбрать тип пользователя из выпадающего списка. Этот выпадающий список будет использоваться для запроса соответствующей таблицы для входа в систему. Другой альтернативой является использование общей таблицы user
, в которой будет храниться user_id, email, password, last_login_date, last_login_ip
, но другие данные будут храниться в соответствующих таблицах, таких как student, parent, teacher
. Итак, каков предпочтительный / правильный способ его реализации?