Bonjour,
Je voudrais savoir quelle est la manière optimale de stocker des changements apportés à des enregistrements dans une base de données relationnelles, de facon à gaspiller le moins de place possible et à retrouver rapidement l'historique d'un objet.
Pour simplifier, j'ai une table produit avec les champs suivants:
id - titre - code - auteur - prix - date_modif - date_sortie |
Ces données sont amenées à être changées, et je voudrais conserver un historique complet des modifications.
Mon souci se situe au niveau de la facon dont stocker ces modifications.
Etant débutant en SGDB ( à part le select, les vues et quelques trucs, je ne connais pas grand chose), j'ai pour le moment ceci comme solution :
table historique avec les champs:
id - id_produit (clé étrangère sur produit.id) - date_modif -champ_modif - old_value - new value |
Par exemple si le produit d'id 5 est passé de 40 à 50 le 01/01/2005, j'aurai :
x - 5 - 01/01/2005 - prix - 40 - 50 |
si l'auteur change de toto à tata le 02/02/2002 j'aurai :
x - 5 - 02/02/2002 - auteur - toto -tata |
Est-ce que vous voyez une autre solution ?
merci