Ich muss eine Verlaufsfunktion für ein Projekt einrichten, um frühere Änderungen nachzuverfolgen.
Nehmen wir an, ich habe gerade zwei Tische:
NOTES TABLE (id, userid, submissionid, message)
SUBMISSIONS TABLE (id, name, userid, filepath)
Beispiel: Ich habe eine Zeile in Notizen und der Benutzer möchte die Nachricht ändern. Ich möchte den Status vor und nach der Änderung verfolgen.
Was wäre der beste Ansatz, um in jeder dieser Tabellen eine Spalte einzurichten, die besagt, ob ein Element "alt" ist? 0 wenn aktiv ODER 1 wenn gelöscht / unsichtbar.
Ich möchte auch eine history ( AUDIT TRAIL
) -Tabelle erstellen, die id
den vorherigen Status und id
den neuen Status enthält. Auf welche Tabelle beziehen sich diese IDs?
mysql
database-design
audit
Schwarz
quelle
quelle
Antworten:
Bitte ansehen
http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database
Es ist eine sehr gute Lektüre zu den Ansätzen zum Erstellen eines Audit Trails in Ihrem Datenbankdesign. Audit Trails sind für die Implementierung einer Datenbank erforderlich. Sie sollten immer die Aktionen der Datenbankbenutzer im System sehen können.
Wir können verfolgen, welche Zeilen in unserem PTA-System (Point in Time) geändert wurden, indem wir allen Tabellen von PTA-Interesse einige Standard-PTA-Spalten (Point in Time) hinzufügen.
Ich schlage folgendes vor:
quelle
Beim Entwerfen von Versionsverwaltungsfunktionen für Ihre Daten gibt es mehrere (meiner Meinung nach) Mindestanforderungen:
Hier sind die Folien einer Präsentation, die ich einige Male auf Technologiemessen gehalten habe. Es wird erläutert, wie all dies durchgeführt werden kann. Und hier ist ein Dokument, das detaillierter geht. Ich muss mich für das Dokument entschuldigen - es ist noch in Arbeit und nicht alle Abschnitte sind abgeschlossen. Aber es sollte Ihnen alle Informationen liefern, die Sie benötigen, um alles zu implementieren, von der einfachen Versionierung bis zum vollständigen bi-temporalen Zugriff.
quelle
This means no flag or other indicator showing which is the current version and which are "history."
, wenn kein Flag oder Indikator, wie wir die aktuelle Version von der Verlaufsversion unterscheiden? Insbesondere basierend auf Ihrem dritten Punkt, den Sie vorschlagen, sollten sie in derselben Tabelle sein.