Estoy creando el sistema para un sistema de gestión escolar y propongo el esquema de la base de datos adjunta.Normalización de la base de datos para el Sistema de gestión escolar
Database diagram http://oi40.tinypic.com/15x21ig.jpg
A continuación se presenta cómo funciona el sistema:
- Una escuela tiene muchos estudiantes y profesores. También ha impartido muchos cursos (asignaturas). Un nivel de grado puede tener muchos cursos asignados. Estos cursos a su vez serán asignados a los estudiantes en esa calificación en particular.
- Los niveles de los estudiantes se clasifican en grados y secciones. Un alumno puede estar en quinto grado, pero si los alumnos de quinto grado son muy numerosos, están divididos en secciones. Ejemplo: Grado 5, sección A, Grado 5, sección B.
- Los alumnos se colocan en aulas exclusivas. Un salón de clase será único en todas partes. El salón de clases de la Sección A del Grado 5 del año 2010 será diferente al Aula de la Sección A del Grado 5 del año 2011.
- Los estudiantes tienen padres asignados. Un padre puede tener más de un alumno en la escuela.
- Uno o más salones se pueden asignar a un maestro.
- La asistencia de los estudiantes a su maestro se realiza diariamente
- Habrá muchos tipos de exámenes. Los resultados del examen se almacenan para cada sujeto (curso).
Soy un principiante en la normalización de bases de datos y estaría contento si alguien pudiera darme algunas pistas si la base de datos se ve bien o no.
EDIT:
Además, no sólo habrá un punto de inicio de sesión. En el caso anterior, durante el inicio de sesión, un usuario tendrá que seleccionar el tipo de usuario de una lista desplegable. Esa selección desplegable se utilizará para consultar la tabla respectiva para iniciar sesión en el sistema. Otra alternativa es utilizar una tabla user
común, que almacenará el user_id, email, password, last_login_date, last_login_ip
, pero almacenará otros detalles en tablas respectivas, como student, parent, teacher
. Entonces, ¿cuál es la forma preferida/correcta para implementarlo?
Oye, ¿los alumnos de tu escuela solo pueden tener un padre? Bastante extraño :) Además, ¿por qué al salón de clases se le asigna solo un maestro? ¿No debería asignarse al curso? – Tadeck
@Tadeck La tabla padre almacena detalles de un padre autorizado, que podrá ver y verificar los registros del alumno. No indica todos los detalles del padre del estudiante. Por ejemplo: A un padre se le puede emitir el nombre de usuario/contraseña del padre para controlar a su alumno. La madre también podría usarlo, pero generalmente solo uno podría hacerlo.En cuanto al aula, un aula solo tendrá UN maestro asignado que completará la asistencia/calificaciones de los alumnos en esa clase en particular. El curso se refiere a asignaturas que estudia un alumno. A los grados se les asignará asignaturas y a los salones se les asignarán calificaciones. – WebNovice
@Damchey prepárese para que cosas como la regla 1-autorizado-padre puedan cambiar, y su aplicación tendrá que lidiar con ella de alguna manera. Puede ser una buena idea diseñar esto para que un alumno pueda tener cualquier número de tutores autorizados: puede limitar el número a 1 en el nivel de UI –