Bonjour à toutes et tous...
Voici un petit problème à soumettre à votre sagacité (ou votre expérience ) :
J'ai une base de données avec un ensemble de table T1, T2, T3, ... Chacune de celle-ci contient une colone avec un identifiant unique ID pour chaque ligne de la table (Clé primaire)
Je voudrais pouvoir stocker toutes les modifications apportées aux données par chaque utilisateur de l'application.
Dans une application existante, la solution choisie est la suivante :
Il existe un table TLOG qui contient autant de colonnes ID qu'il y a de tables à logger plus les champs "nom de colonne", "ancienne valeur" et "nouvelle valeur"
Par exemple : T1_ID, T2_ID, T3_ID, COLUMN_NAME, OLD, NEW
Une modification d'une valeur dans la table T1 serait stockée
1234,NULL,NULL,NULL, 'Name', 'Dupont', 'Dupond'
Une modification d'une valeur dans la table T2 serait stockée
NULL,32129,NULL,NULL, 'amount', '100', '135'
Etc...
Ce principe fonctionne mais il a quelques inconvénients
- Ce n'est pas elégant comme solution
- Si une table T4 est ajoutée au modèle, il faut modifier la table Log
Existe-il une approche plus générique de ce problème ?
Quelqu'un a-t-il une piste de réflexion ?
Merci d'avance,
Michel
Partager