Actuellement, je veux structurer un tableau de suivi / historique comme ceci:
- PrimaryKey - ID
- OtherTableId - fk
- fieldName - nom du champ son suivi
- OldValue
- Nouvelle valeur
- Nom d'utilisateur
- CreateDateTime
Donc, fondamentalement, je veux avoir une table qui suivra l'historique d'une autre table, stockera le nom de la colonne du champ modifié avec la nouvelle et l'ancienne valeur. Ma question est: quelqu'un peut-il percer des trous dans tout cela? De plus, quelle est la manière la plus simple de s'assurer que seul un nom de colonne des tables dont le suivi est entré dans la colonne fieldName? Actuellement, mes options sont d'avoir une énumération dans le service que je construis, ou de créer une autre table d'état et de faire de fieldName un fk. De meilleures idées?
Modifier l' objectif: il n'y a actuellement que 2 champs que nous souhaitons suivre. Un champ sera affiché sur une page Web pour afficher l'historique, l'autre champ ne sera accessible que par un département et ils auront accès à une vue de la base de données qu'ils pourraient interroger. Ils interrogeraient uniquement ce champ pour obtenir des informations sur qui a changé le champ et sur quoi. C'est la raison pour laquelle nous voulions le placer où un champ de base de données définit la colonne de table plutôt que d'avoir une copie exacte de l'historique des enregistrements de table. Nous voulons seulement que deux champs soient suivis avec les possibilités d'ajouter ou de supprimer des champs à l'avenir.
Merci!