J'ai besoin de configurer une fonction d'historique sur un projet pour garder une trace des modifications antérieures.
Disons que j'ai deux tables en ce moment:
NOTES TABLE (id, userid, submissionid, message)
SUBMISSIONS TABLE (id, name, userid, filepath)
Exemple: j'ai une ligne dans les notes et l'utilisateur souhaite modifier le message. Je veux garder une trace de son état avant le changement et après le changement.
Quelle serait la meilleure approche pour mettre en place une colonne dans chacun de ces tableaux qui dira si un élément est "ancien". 0 si actif OU 1 s'il est supprimé / invisible.
Je veux également créer une AUDIT TRAIL
table history ( ) qui contient l' id
état précédent, id
le nouvel état, à quelle table ces identifiants se rapportent-ils?
la source
Réponses:
Veuillez consulter
http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
C'est une très bonne lecture sur les approches pour créer une piste d'audit dans la conception de votre base de données. Les pistes d'audit sont nécessaires à la mise en place d'une base de données. Vous devriez toujours pouvoir voir les actions des utilisateurs de la base de données au sein du système.
Nous pouvons suivre les lignes qui ont été modifiées dans notre système PTA (point dans le temps) en ajoutant des colonnes PTA standard (point dans le temps) à toutes les tables d'intérêt PTA.
Je suggère ce qui suit:
la source
Lors de la conception de capacités de contrôle de version dans vos données, il existe plusieurs exigences minimales (je pense):
Voici les diapositives d'une présentation que j'ai faite à quelques reprises lors de salons techniques. Il explique comment faire tout ce qui précède. Et voici un document qui va plus en détail. Je dois m'excuser pour le document - c'est un travail en cours et toutes les sections ne sont pas terminées. Mais il devrait vous donner toutes les informations nécessaires pour implémenter quoi que ce soit, du simple versionnage à l'accès bi-temporel complet.
la source
This means no flag or other indicator showing which is the current version and which are "history."
, si aucun indicateur ou indicateur, comment nous différencions la version actuelle de la version historique? Surtout en fonction de votre troisième point que vous suggérez qu'ils devraient être dans le même tableau.