Für ein Projekt, an dem ich arbeite, wurde ich gebeten, eine Änderungshistorie aller Änderungen, die an Datensätzen vorgenommen wurden, zu erstellen. Dies ist das erste Mal, dass ich eine Änderungshistorie erstellen musste, also habe ich viel darüber recherchiert.
Die Anwendung wird in PHP/MSSQL entwickelt und wird wenig Traffic haben.
Aus meinen Recherchen habe ich praktisch entschieden, eine Audit-Tabelle zu haben und Trigger zu verwenden, um die Änderungen in der Tabelle aufzuzeichnen.
Die beiden Anforderungen für die Anzeige in der Anwendung sind wie folgt:
-
Eine Protokollaufzeichnung aller gemachten Änderungen an einem Feld sehen können (ich weiß ziemlich genau, wie das geht)
-
Beim Anzeigen eines Datensatzes in der Anwendung sehen können, ob ein Feld im Datensatz jemals geändert wurde (und möglicherweise weitere Informationen wie das Datum der letzten Änderung).
Punkt #2 ist derzeit derjenige, der mir Kopfzerbrechen bereitet. Ohne für jedes Feld eine separate Abfrage durchzuführen (oder eine sehr lange verschachtelte Abfrage, die eine Ewigkeit dauern wird), hat jemand Vorschläge für eine optimale Möglichkeit, dies zu tun? (Ich habe daran gedacht, ein zusätzliches "ModifiedFlag"-Feld für jedes Feld in der Tabelle hinzuzufügen, das als boolescher Indikator fungiert, ob das Feld jemals bearbeitet wurde, aber das scheint wie viel Overhead.)