Je suis curieux de savoir comment d'autres personnes ont géré cela. Imaginez un système qui a simplement des produits, des bons de commande et des lignes de commande d'achat. Les bons de commande sont les parents d'une relation parent-enfant avec les bons de commande. Lignes de commande d'achat, référence un seul produit.SQL Server Business Logic: Suppression des données référencées
Cela fonctionne jusqu'à ce que vous supprimiez un produit référencé par une ligne de commande d'achat. Soudainement, la Ligne sait vendre 30 de quelque chose ... mais elle ne sait pas quoi.
Quel est un bon moyen d'anticiper la suppression d'un élément de données référencé comme celui-ci? Je suppose que vous pourriez simplement interdire un produit à supprimer si des lignes de commande le référencent, mais cela semble ... maladroit. J'imagine qu'il est probable que vous conserviez le bon de commande dans la base de données pendant des années, essentiellement en soudant le produit que vous voulez supprimer dans votre base de données.
Les clés étrangères correctes doivent certainement être créées, mais je ne suis pas un grand fan de l'utilisation des suppressions en cascade. Je préfère gérer cela dans mon propre code. –
Intéressant, une raison particulière? –
Probablement juste ma propre idiosyncrasie personnelle. Je n'aime pas les choses cachées qui se passent dans les coulisses de la DB. Et oui, je réalise que cela arrive tout le temps avec des déclencheurs, des colonnes calculées, etc. mais les suppressions en cascade me font mal. –