Les clés étrangères sont le meilleur moyen de garantir l'intégrité référentielle d'une base de données. Éviter les cascades parce qu'elles sont magiques, c'est comme écrire tout en assembleur parce qu'on ne fait pas confiance à la magie des compilateurs.
Ce qui est mauvais, c'est la mauvaise utilisation des clés étrangères, comme les créer à l'envers, par exemple.
L'exemple de Juan Manuel est l'exemple canonique, si vous utilisez du code, il y a beaucoup plus de chances de laisser de faux DocumentItems dans la base de données qui viendront vous mordre.
Les mises à jour en cascade sont utiles, par exemple, lorsque les données sont référencées par un élément susceptible de changer, comme la clé primaire d'une table d'utilisateurs qui est la combinaison nom, prénom. Vous souhaitez alors que les modifications apportées à cette combinaison se propagent partout où elles sont référencées.
@Aidan, La clarté dont vous parlez a un prix élevé : le risque de laisser des données erronées dans votre base de données, ce qui est une erreur. pas petit . Pour moi, c'est généralement le manque de familiarité avec la base de données et l'incapacité à trouver quels FK sont en place avant de travailler avec la base de données qui alimentent cette crainte. Soit cela, soit une mauvaise utilisation constante de la cascade, en l'utilisant lorsque les entités n'étaient pas conceptuellement liées, ou lorsque vous devez préserver l'historique.
6 votes
Cette question ne semble pas strictement liée à SQL Server et ressemble davantage à une question théorique et générale. Il serait plus utile pour la communauté que vous supprimiez l'élément
sql-server
étiquette.4 votes
@clapas Honnêtement, si je devais poser la question aujourd'hui, elle serait hors sujet. Si ce n'était pas pour le nombre élevé de vues/votes indiquant qu'elle a de la valeur pour la communauté, je l'aurais simplement supprimée.
6 votes
@JoelCoehoorn - Il est évident que ce type de questions a de la valeur. Cette valeur ne se dissipe pas avec le temps. La question qui me vient à l'esprit est de savoir quelle valeur nous perdons en interdisant ces questions aujourd'hui ?
2 votes
@P.Brian.Mackey Ici, ici ! Certaines des meilleures questions/réponses que j'ai vues sont celles qui ont été rejetées ou considérées comme étant hors sujet... mais on peut voir à l'énorme quantité de votes positifs que beaucoup ont eu exactement la même question !
0 votes
Les actions en cascade prennent des verrous sérialisables.