Hallo zusammen,
Ich habe eine Design Frage. Ich habe ein java Program geschrieben mit der ein User Personen in einer DB speichern kann. Jetzt will ich eine Art Änderungsprotokoll in einer Tabelle speichern, damit z.B. ein Admin später nachverfolgen kann was bei einer Person geändert wurde.
Allerdings habe ich keine Ahnung wie die Tabelle(n) aussehen soll, mein erster Ansatz ist dass ich alle Eigenschaften die sich geändert habe in EINER Spalte speichere, getrennt durch z.B. ein * oder ein abstrakteres Zeichen. Genauso mache ich es dann mit den Werten der Eigenschaften(in einer spalte die neuen Werte, in einer die alten). So würde ich eine Zeile pro Änderung bekommen (natürlich noch mit datum versehen etc...), auch wenn sie mehrere EIgenschaften der Person ändern.
Allerdings finde ich diesen Ansatz nicht gut, da meine Tabelle ja dann nicht mal Normalform 1 erfüllt, außerdem hab ich ein Stringgefummel, geschweige denn den Fall der User gibt mal einen Wert mit * ein.
Mein zweiter Ansatz war zwei Tabellen. Eine die pro Änderung eine Zeile enthält (mit datum, user etc..) und eine zweite die für jede Eigenschaft die sich geändert hat eine zeile anlegt. Die zwei Tabellen würde ich dann verknüpfen (fremdschlüssel und so)
Allerdings hab ich da die Befürchtung dass die Tabelle schnell zu groß wird. Besonders da ich die Daten über 1 oder 2 Jahre speichern will.
hat jemand ne Idee?
Vielen Dank + beste Grüße
OhNo
Ich habe eine Design Frage. Ich habe ein java Program geschrieben mit der ein User Personen in einer DB speichern kann. Jetzt will ich eine Art Änderungsprotokoll in einer Tabelle speichern, damit z.B. ein Admin später nachverfolgen kann was bei einer Person geändert wurde.
Allerdings habe ich keine Ahnung wie die Tabelle(n) aussehen soll, mein erster Ansatz ist dass ich alle Eigenschaften die sich geändert habe in EINER Spalte speichere, getrennt durch z.B. ein * oder ein abstrakteres Zeichen. Genauso mache ich es dann mit den Werten der Eigenschaften(in einer spalte die neuen Werte, in einer die alten). So würde ich eine Zeile pro Änderung bekommen (natürlich noch mit datum versehen etc...), auch wenn sie mehrere EIgenschaften der Person ändern.
Allerdings finde ich diesen Ansatz nicht gut, da meine Tabelle ja dann nicht mal Normalform 1 erfüllt, außerdem hab ich ein Stringgefummel, geschweige denn den Fall der User gibt mal einen Wert mit * ein.
Mein zweiter Ansatz war zwei Tabellen. Eine die pro Änderung eine Zeile enthält (mit datum, user etc..) und eine zweite die für jede Eigenschaft die sich geändert hat eine zeile anlegt. Die zwei Tabellen würde ich dann verknüpfen (fremdschlüssel und so)
Allerdings hab ich da die Befürchtung dass die Tabelle schnell zu groß wird. Besonders da ich die Daten über 1 oder 2 Jahre speichern will.
hat jemand ne Idee?
Vielen Dank + beste Grüße
OhNo
Comment