Las claves externas son la mejor manera de garantizar la integridad referencial de una base de datos. Evitar las cascadas por ser mágico es como escribir todo en ensamblado porque no confías en la magia detrás de los compiladores.
Lo malo es el uso incorrecto de claves externas, como crearlas al revés, por ejemplo.
El ejemplo de Juan Manuel es el ejemplo canónico, si usa código hay muchas más posibilidades de dejar documentos falsos en la base de datos que vendrán y lo morderán.
Las actualizaciones en cascada son útiles, por ejemplo, cuando tiene referencias a los datos por algo que puede cambiar, digamos que una clave principal de una tabla de usuarios es la combinación de nombre y apellido. Luego, desea que los cambios en esa combinación se propaguen a donde se haga referencia.
@Aidan, esa claridad a la que te refieres tiene un alto costo, la posibilidad de dejar datos espurios en tu base de datos, que no es pequeña . Para mí, generalmente es la falta de familiaridad con el DB y la incapacidad de encontrar qué FK están en su lugar antes de trabajar con el DB lo que fomenta ese miedo. O eso, o el mal uso constante de la cascada, usándolo donde las entidades no estaban relacionadas conceptualmente, o donde tienes que preservar la historia.
sql-server
etiqueta.