Update-Loggin MySQL

QUEST08

Erfahrenes Mitglied
Tach liebe PHPler,

gerne würde ich eine Tabelle "updatelogging" erstellen, in welcher Änderungen der Datenbank gespeichert werden. Das ganze trifft eigentlich nur auf Nutzerdaten zu.

Wenn sich bei einem Nutzer die Daten ändern, soll dies gleichzeitig in der Tabelle updatelogging gespeichert werden. Beispiel:

Nutzer hat die Straße: Musterstraße 11
Nutzer ändert die Straße in: Musterstraße 22

Jetzt möchte ich wissen, wann diese Änderung durchgeführt wurde und wie der alte Datensatz war.

Hierfür lege ich mir eine Tabelle an: id, tabelle, tabellen_id, updates

Wenn ich jetzt einen Datensatz via UPDATE aktualisiere (Beispiel) müsste ich ja zuerst den aktuellen Datensatz auslesen und diesen in updatelogging speichern. Jetzt habe ich jedoch bedenken, dass ich 1. jede Spalte, die geändert werden kann zusätzlich in der Tabelle updatelogging anlegen muss und 2. das mir das ganze enorm die Ausführungszeit raubt.

Wie würdet ihr soetwas lösen?
 
Les dich mal zum Thema Trigger bei MySQL ein.

Ein Trigger ist eine in der MySQL-DB gespeicherte Prozedure, die ja nach Definition vor einem Update auf einer Tabelle etwas machen kann. Du kannst in dieser Prozedure auf die alten und die neuen Daten zugreifen und soviel ich weiss, diese da auch in deine Tabelle speichern.
 
Zurück