Cita: Tengo dudas conceptuales, es correcto eliminar de la base de datos una persona y tener que hacer una eliminacion en cascada de las tablas que se relacionan con él y alguna otra actualización de valores de campos.
Eso se resuelve a nivel de bases de datos. Lo que tu debes manejar en el programa es la indicación de que esa persona se desea borrar.
Habitualmente lo que se ha hecho es definir las tablas de la base de datos con la propiedad ON DELETE CASCADE, lo que hace que la aplicación manda a borrar un sólo registro, y el resto de las tablas se actualiza en cascada, sin que la aplicación deba preocuparse por ello.
Pero eso es tema de Bases de Datos. Es allí donde te lo pueden explicar bien.
Respecto al tema conceptual de si una persona se
borra de una base, la respuesta es NO.
Una persona, un empleado, un docente, un operario, no se borran de una base de datos.
Se desactivan.
Es decir, existe un campo de estado que define si un empleado es un empleado activo en el momento presente o no; y dentro de las bases existen muchas referencias a ese registro, algunas de ellas en tablas históricas, algunas otras en tablas transaccionales. Por eso no se deben
borrar.
Imagina esta situación: Un cajero de un supermercado renuncia. Se elimina del registro, pero de su registro dependen todos los tickets emitidos por las ventas realizadas por las cajas donde trabajó del último lustro (5 años). ¿Puedes borrar eso? Obviamente no. ¿Puedes dejarlo NULL? Tampoco, porque luego en una auditoría no habría forma de establecer si se pagaron premios por desempeño, o a quién corresponde el balanceo de caja diario, etc.
La regla general es:
Ante la duda, se guarda siempre.