Ich suche nach einer Möglichkeit, die Änderungsgeschichte einer Access-Datenbank zu erfassen, sprich: Wer hat wann was warum geändert. Schön aber nicht unbedingt nötig wäre es, einen alten Stand wiederherstellen zu können. Vom Prinzip her stelle ich mir das so vor, wie die Versionsverwaltungstools für Sourcecode. Wahrscheinlich scheiden aber solche Tools wie VSS, CVS oder SVN aus, da die Datenbank eine "binäre" Datei ist und derzeit rund 77 MB gross ist.
Mach doch den primary key als Surrogat mit der Versionsnummer. Oder versionier die binäre Datei mit CVS, das geht auch!
Nun, da ich bei Datenbanken ein Newbie bin, verstehe ich unter dem ersten Vorschlag nur Bahnhof. Hingegen funktioniert es tatsächlich mit SVN. Das Repository wird nur etwa 4 MB gross, mit 3 unterschiedlichen DB-Versionen eingecheckt. Danke!
Kann man von Accessdatenbanken keinen Textdump machen? Ich hab mal an einem Projekt gearbeitet, da haben wird von der PostgresSQL Datenbank die wir benutzten einfach einen SQL-Dump (aber nur vom Schema, denn darum ging es uns nur) ins CVS reingehauen. War noch witzig, weil dadurch, dass wir nen SQL-Dump verwendeten, konnte man mit cvs diff auch die Änderungen studieren.
Eine Änderungshistorie mit der Möglichkeit nachzuvollziehen wer was wann geändert hat und die Möglichkeit die Änderung auch wieder rückgängig zu machen geht nur mit Datenbankbordmittel. Wir haben das so gelöst, dass wir an jede Tabelle die ID - des Mitarbeiters und den Änderungszeitpunkt angehangen haben. In einem Trigger prüfen wir welche Änderungen durchgeführt wurden. Die Änderungen werden mit Bezug zum Orginalsatz in einer eigenen Tabelle gespeichert. Auf diese Weise können wir alle Änderungen auf kritischen Tabellen protokollieren und notfalls zurückfahren. Da unsere Tabellen zum Teil viele Felder haben, haben wir einen kleinen Codegenerator, der entsprechenden SQL-Code für die Trigger generiert. Als Trigger benötigst Du für jede Tabelle einen Before-Insert und einen Before-Update Trigger. Im TRigger prüfst Du einfach mit OLD.Feldname <> NEW.Feldname den Inhalt. Hat sich etwas verändert, fügst Du die Veränderung in die Protokolltabelle ein. Gruß Frank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.