relacionados registros los eliminar eliminacion como cascada borrar actualizar actualizacion sql soft-delete

registros - eliminar en cascada postgresql



EliminaciĆ³n en cascada en cascada (4)

Creo que una de las ventajas de las eliminaciones suaves suele ser que no todas las tablas tienen una marca de eliminación suave, por lo que la cantidad de elementos necesarios para la conexión en cascada es poca. Las filas simplemente no se utilizan en la base de datos, pero no se quedan huérfanas; simplemente se las refiere a filas eliminadas.

Como todo, sin embargo, depende de tu modelo.

SQL siempre ha tenido una gran característica: eliminaciones en cascada. Lo planifica con anticipación y cuando es hora de eliminar algo, ¡BAM! No hay necesidad de preocuparse por todos esos registros dependientes.

Sin embargo, hoy en día es casi tabú eliminar realmente algo. Usted lo marca como eliminado y deja de mostrarlo. Desafortunadamente, no he podido encontrar una solución sólida para hacer esto cuando hay registros dependientes. Siempre he codificado manualmente la complicada red de eliminaciones automáticas.

¿Hay alguna solución mejor que haya echado de menos por completo?


Las restricciones de clave externa pueden hacer actualizaciones en cascada. Si vinculó sus tablas tanto en la tecla como en la bandera de eliminación, cuando la marca de eliminación en la tabla maestra cambió, ese cambio se propagaría a la tabla de detalles. No lo he intentado, pero debería funcionar.


No estoy seguro de qué backend está hablando, pero podría cambiar el cambio de su "marca de eliminación" y poner en cascada el cambio utilizando un desencadenador.


Odio decirlo, pero los desencadenantes están diseñados específicamente para este tipo de cosas.

(La parte de odio es porque los buenos desencadenadores son muy difíciles de escribir y, por supuesto, no se pueden depurar)