83 Últimos ajustes de eliminar registros Sistema de Gestión Escolar(PHP y MySql)FullStack

Duración: 31 min
Módulo: 🏁 Ajustes Finales y Conclusión Lección 2 de 5

Descripción

LECCIÓN 83: Últimos ajustes de eliminar registros del Sistema de Gestión Escolar (PHP y MySql) 🔒

Esta lección es una revisión final crucial de la funcionalidad de eliminación (DELETE) en el sistema, centrándose en cómo manejar la integridad referencial dada la complejidad del diseño de la base de datos (con 18 tablas interconectadas).

El objetivo es evitar errores críticos en el sistema cuando se intenta borrar un registro que ya está siendo utilizado o referenciado en otra tabla.

1. Solución para la Integridad de Datos

Debido a que muchas tablas están relacionadas por llaves foráneas, la eliminación directa de un registro padre (ej. un nivel) resultaría en un error si existen registros hijos (ej. grados) vinculados a él.

  • Implementación de TRY-CATCH: La solución consiste en envolver la consulta de eliminación (DELETE) en el controlador PHP con un bloque TRY-CATCH [08:40].
  • Manejo de Excepciones: Si el TRY falla (porque la base de datos restringe la eliminación por la existencia de relaciones), el bloque CATCH intercepta la excepción [09:29].
  • Mensaje de Error Amigable: En lugar de que el sistema falle, se devuelve un mensaje de error al usuario, indicando: "Error no se pudo eliminar en la base de datos porque este registro existe en otras tablas" [09:47]. La eliminación solo se ejecutará si el registro no tiene ninguna dependencia.

2. Revisión del Módulo de Eliminación por Módulo

Se revisaron y ajustaron las funcionalidades de eliminación para los siguientes módulos:

MóduloDecisión sobre el botón EliminarMotivo y Relaciones Clave
ConfiguraciónSe mantiene [04:50]No tiene relaciones que impidan su eliminación.
GestionesSe habilita con TRY-CATCH [06:59]Relacionado con niveles.
NivelesSe habilita con TRY-CATCH [12:19]Relacionado con grados.
GradosSe habilita con TRY-CATCH [14:58]Relacionado con estudiantes y asignación de docentes. El sistema permite borrar si el grado no está asignado, pero bloquea si está en uso [17:35].
MateriasSe habilita con TRY-CATCH [20:58]Relacionado con asignación de docentes y cardex.
RolesSe habilita con TRY-CATCH [24:12]Relacionado con usuarios y roles_permisos.
PermisosSe habilita con TRY-CATCH [29:50]Relacionado con roles_permisos.

3. Conclusión Final

Con la implementación del bloque TRY-CATCH en los controladores de eliminación, el sistema queda protegido contra fallas de integridad de datos. El usuario tiene el control de borrar registros no utilizados, pero la información esencial del sistema se mantiene íntegra y protegida de eliminaciones accidentales [30:57]. Con este ajuste, el desarrollo del sistema se considera completado [31:05].