Sie haben hier ein paar Probleme, die sich nicht gut aufeinander beziehen.
Auf der Basis-Datenbank-Ebene können Sie Änderungen verfolgen, indem Sie eine separate Tabelle haben, die einen Eintrag über Trigger für INSERT/UPDATE/DELETE-Anweisungen erhält. Dies ist die allgemeine Methode zum Verfolgen von Änderungen an einer Datenbanktabelle.
Die andere Sache, die Sie wollen, ist zu wissen, welche Benutzer die Änderung vorgenommen hat. Im Allgemeinen würden deine Auslöser das nicht wissen. Ich nehme an, dass, wenn Sie wissen möchten, welcher Benutzer ein Stück Daten geändert hat, es möglich ist, dass mehrere Benutzer die gleichen Daten ändern können.
Es gibt keinen richtigen Weg, dies zu tun, Sie werden wahrscheinlich eine separate Tabelle haben, in die Ihr Anwendungscode einen Datensatz einfügen wird, wenn ein Benutzer einige Daten in der anderen Tabelle aktualisiert, einschließlich Benutzer, Zeitstempel und ID von die geänderte Aufzeichnung.
Stellen Sie sicher, dass Sie eine Transaktion verwenden, damit Sie nicht mit Fällen fertig werden, in denen das Update ohne die Einfügung durchgeführt wird. Wenn Sie die umgekehrte Reihenfolge verwenden, endet die Einfügung ohne Aktualisierung.
Einige gute Diskussion hier: http://discuss.joelonsoftware.com/default.asp?design.4.483891 .10 –
Siehe auch [Das beste Design für eine Changelog-/Audit-Datenbanktabelle?] (Https://stackoverflow.com/questions/201527/best-design-for-a-changelog-auditing-dabatta-table) – user