¿Por qué no podemos tener múltiples caminos en cascada?

9

Puede ver que se han hecho muchas preguntas sobre múltiples rutas en cascada . Por ejemplo:

/programming/851625/foreign-key-constraint-may-cause-cycles-or-multiple-cascade-paths

/programming/6065501/multiple-cascade-delete-path-in-many-many-relationship-ef-4-1

/programming/27613117/introducing-foreign-key-constraint-may-cause-cycles-or-multiple-cascade-paths-s

Sin embargo, por lo que veo y entiendo, está totalmente bien que desee eliminar un registro secundario en muchos y no solo una condición de la eliminación de los registros maestros relacionados.

Si bien en una pregunta se dice que SQL Server intenta estar seguro al evitar que esto suceda, realmente no entiendo qué podría salir mal si tenemos múltiples rutas en cascada, y ¿qué problemas evita que sea seguro ?

Espero que alguien me pueda explicar eso, en palabras simples y sencillas, preferiblemente usando ejemplos de lo que podría salir mal en caso de múltiples rutas en cascada.

Saeed Neamati
fuente

Respuestas:

6

Los desarrolladores de Microsoft o Sybase solo pueden responder a esta pregunta "qué puede salir mal". Cuando hay varias rutas en cascada para el mismo registro, es posible que el código intente eliminarlo varias veces. Si no está diseñado para tratar con la posibilidad de que el registro que se va a eliminar ya se haya eliminado, podría arrojar un error. Aparentemente, este problema realmente existe (¡o se cree que existe!), Por lo que en lugar de solucionarlo, la implementación lo evita al evitar la definición de rutas en cascada duplicadas. Es claramente un atajo, porque otros DBMS no tienen ningún problema con esta situación.

Cliffordheath
fuente
2
pensarías que después de 20 años de SQL Server,
podrían