Zitat von
mojo777:
@mkinzler: nö. das klappt so nicht. mit *fuck.... hab den begriff vergessen...* naja. also kopie dingens da....
eine kopie der ganzen
db ist hier nicht sinnvoll. da über stored proceduren der alte zustand noch abgefragt werden soll.
Und genau deshalb ist dein Ansatz ... Käse.
Du duplizierst sinnlos Daten, diese sind dann auch noch durch einen Medienbruch unstrukturiert in einem BLOB.
Möglich wären 4 Tabellen
- MetaChangesTypes
Id
Name (Insert, Update, Delete)
- MetaTables
Id
PrimaryKeyField -> FK zu MetaFieds (hatte ich vergessen)
Name
Active (0 oder 1; 0 für gelöscht)
- MetaUsers
Id
Name
Active (0 oder 1; 0 für gelöscht)
- MetaFields
Id
MetaTable -> FK zu MetaTables.Id
Name
Active (0 oder 1; 0 für gelöscht)
- AuditLog
Id
RecordId -> enthält die Id des protokollierten Datensatzes (hatte ich vergessen)
Field -> FK zu MetaFields.Id
ChangeType -> FK zu MetaChangeTypes.Id
ChangeDate
User -> Fk zu MetaUser.Id
Value
Wenn du viel Gück hast erinnere ich mich heute abend noch an dich und mit etwas mehr Glück finde ich ein altes FDB Template, indem ich die Systemtabellen ein wenig getunt habe.
Anhand einer Tabelle in der Filterbedingungen stehen wurden so automatisch die MetaXX-Tabellen synchron gehalten und für jedes Feld Trigger generiert, die alle Änderungen des Feldes protokollieren.
Bei einem solchen AuditLog sollte man nie auf die Idee kommen den vollen Objektnamen abzulegen. Dadurch wird das Ding a) unnötig groß und b) werden Abfragen beschissen langsam.
edit: noch mehr Copy&Waste...
edit2: RecordId & PrimaryKeyField vergessen