Hello,
Je me pose une question quant à "l'historisation" des données.
J'entends pas historisation, le fait de garder quelque part les lignes supprimées par un utilisateur pour le cas où il se serait trompé et qu'il faille les récupérer (sans devoir faire un restore de la DB)
Dans un précédent projet, j'avais créé un schéma Deleted et ce dernier abritait un clône de chaque table du schéma de prod (dbo en l'occurence). Ces clônes ayant été débarrassés de toutes contraintes bien sûr (sinon ça marche pas des masses...).
Au final, j'ai pu constaté que ce n'était pas des plus pratiques car à chaque modification du schéma de prod (même mineure), il fallait alors la reporter sur le schéma d'archivage ainsi que modifié le trigger AFTER DELETE de la table de prod ayant subie les modifs. Assez lourd donc.
Pour un nouveau projet, j'envisage d'ajouter à chaque table (enfin celles pour lesquels cet archivage est nécessaire) deux colonnes. Une colonne DELETED_ON de type datetime2 et une colonne DELETED_BY de type varchar. Ces colonnes seraient alors mises à jour via un trigger INSTEAD OF DELETE. Pour compléter cela, une vue sur chaque table faisant le filtre des données supprimées et la boucle est bouclée.
Sur le papier, ça a l'air de tourner (tout autant que la première manière de faire en tout cas).
Je me demandais ce qu'en pense les pros. Comment faites-vous de votre côté ?
Partager