2009-05-17 10 views
1

Dites que j'ai une table Employés (PK est employeeID) et une table des ventes, où la table des ventes a une colonne FK pour employeeID. Maintenant, lors de la conception de ma procédure stockée deleteEmployee, dois-je d'abord supprimer les lignes dans la table Sales ou dois-je créer des procédures stockées séparées à supprimer dans chaque table, puis m'inquiéter de cela dans ma couche logique métier?Ma procédure stockée de suppression doit-elle être mise en cascade pour les tables FK?

Répondre

2

Non, non, non.

Ajoutez un champ à la table Employee "OutServiceDt" et stockez la date à laquelle ils ont quitté votre société.

De cette façon, vous gardez les dossiers des ventes qu'ils ont fait, leurs informations d'adresse, et tout ce que vous avez :)

Si vous êtes à la recherche qui sont des employés dans le service, filtre « est OutServiceDt nul".

+1

Nous utilisons souvent l'approche de "ne jamais supprimer quoi que ce soit" - si elle était suffisante pour la mettre dans la base de données, elle a probablement encore de la valeur. –

+0

Appuyé. Perdre des enregistrements historiques est généralement une mauvaise idée, donc je voudrais concevoir un moyen de garder la trace si les employés sont actifs ou non, donc la couche logique métier peut utiliser cette information, mais toutes les anciennes informations sont toujours intactes. –

Questions connexes