Je crée un système pour un système de gestion d'école et propose le schéma de base de données attaché.
Voici comment fonctionne le système:
Je suis un débutant dans la normalisation de base de données et je serais heureux si quelqu'un pouvait me donner des indices si la base de données semble correcte ou non.
ÉDITER:
De plus, il n'y aura qu'un seul point de connexion. Dans le cas ci-dessus, lors de la connexion, un utilisateur devra sélectionner le type d'utilisateur dans une liste déroulante. Cette sélection déroulante sera utilisée pour interroger la table respective pour se connecter au système. Une autre alternative consiste à utiliser une table user
commune, qui stockera le user_id, email, password, last_login_date, last_login_ip
mais stockera d'autres détails dans des tableaux respectifs tels que student, parent, teacher
. Alors, quelle est la façon préférée/correcte de le mettre en œuvre?
Vous ne modélisez pas GRADE_SECTIONS du tout.
À moins que votre école n'ait un programme massif de démolition et de construction à chaque vacances d'été, les salles de classe seront les mêmes. Ce sont les missions qui changent chaque année. Donc, CLASSROOMS doit être affecté à une entité GRADE_SECTION distincte, au lieu de fusionner SECTIONS et CLASSROOMS comme vous le faites maintenant.
Les étudiants doivent être affectés à GRADE_SECTIONS et non à CLASSROOMS.
LES COURS devraient avoir de nombreux EXAMS plutôt que de nombreux EXAM_RESULTS. Cela n'a tout simplement pas de sens qu'un examen de français puisse être passé par des étudiants apprenant les mathématiques et le russe.