C'est à peu près tout - un champ booléen pour indiquer que l'enregistrement est supprimé. Les quelques fois que j'ai utilisé cela, j'ai appelé ce champ IsDeleted
.
Ceci est souvent appelé Logical Delete. C'est à vous de respecter ce champ dans vos rapports, ce qui veut dire d'exclure tous les enregistrements IsDeleted = true
. Ces requêtes peuvent être un peu compliquées si vous avez beaucoup de tables et de relations. En outre, vous pouvez rencontrer des problèmes si vous avez des contraintes uniques sur une table. Par exemple, si dans une table utilisateur un utilisateur a IsDeleted = true
et que la colonne e-mail est unique, il ne sera pas possible d'ajouter un nouvel utilisateur avec la même adresse e-mail.
Certains ORM prennent en compte ces champs - par exemple, SubSonic 2.2 ne supprimera pas un enregistrement s'il existe une colonne nommée 'Supprimé' ou 'IsDeleted', mais définira ce champ à true.
Quelques ressources connexes:
Comme alternative à cela, vous pouvez ajouter des tables d'audit.