18 Normalización de la base de datos curso de Sistema de gestión escolar con (PHP y MySql) FullStack
Duración: 21 minDescripción
💻 Lección 18: Normalización Avanzada de la Base de Datos
El video https://youtu.be/dUfPWJp_UCo aborda un problema de redundancia de datos en el modelo de entidad que se estaba construyendo, y aplica un proceso de normalización para centralizar la información personal.
1. 🛑 El Problema de la Duplicación de Datos
En el diseño anterior, tablas como administrativos, docentes, estudiantes y padres_de_familia iban a tener que almacenar campos de identificación personal comunes, tales como: nombres, apellidos, Cédula de Identidad (CI), fecha de nacimiento, dirección y número de celular [01:15].
Repetir estos seis o siete campos en cuatro tablas diferentes genera un sistema desordenado y difícil de mantener.
2. 🧠 Solución: Centralización con la Tabla personas
Para eliminar la redundancia, el desarrollador aplica el principio de normalización creando una nueva entidad central llamada personas.
- Tabla personas (El Nuevo Centro): Esta tabla almacena toda la información personal común que ya no se repite en otros módulos [01:50]. Además, se relaciona directamente con la tabla usuarios mediante una llave foránea llamada usuario_ID [07:30].
- Datos Centralizados:
- Nombres y Apellidos
- Cédula de Identidad (CI)
- Fecha de Nacimiento
- Dirección
- Celular
- Profesión
- ID de Usuario (para login y roles)
3. 🔗 Nueva Estructura y Relaciones
Con la tabla personas, la estructura del sistema se simplifica drásticamente. Las tablas específicas de cada rol ahora solo necesitan un campo para relacionarse con este nuevo núcleo [05:37]:
- Las tablas administrativos, docentes, estudiantes y padres_de_familia ahora solo tienen su propio ID primario y una única llave foránea llamada persona_ID (que apunta a la tabla personas).
Este diseño establece una jerarquía clara de relaciones:
- Rol Específico (Ej.: un administrativo) se vincula a una Persona.
- La Persona se vincula a un Usuario.
4. ⚠️ Ajuste de Error en el Sistema
Debido a que el campo "nombre" fue eliminado de la tabla usuarios (ya que ahora está en personas), el sistema arrojó un error en el layout principal. Para corregirlo temporalmente, el desarrollador modifica el código para que muestre el correo electrónico del usuario logueado en lugar de su nombre en la barra de navegación, hasta que se implemente la lógica para buscar el nombre en la tabla personas [19:35].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️