eltigree: Bitemporale Datenhalten (Datenhistorisierung)

Beitrag lesen

Hallo zusammen!
Ich möchte gerne meine Daten (MS SQL Server 2005) bitemporal halten, d.h. eine Datenhistorisierung einfügen und bräuchte hierzu noch Tipps.

Ich habe bereits gelesen, dass es von Vorteil ist, die Historisierung und die Stammdaten getrennt zu führen. Nun habe ich aber das Problem, dass ich nicht genau weiss wie ich diese Daten führen muss.

Meine Historisierungsidee ist, dass ich Mutationen in die Vergangenheit sowohl auch in die Zukunft vornehmen kann. Die History-Tabelle legen ich analog der Original-Tabelle an und ergänze diese mit 4 zusätzlichen Spalten ExistsFrom (Kenntnis-Ab des Datensatzes), ExistsTo (Kenntnis-Bis des Datensatzes, bleibt immer leer), ValidFrom (Gültig-Ab des Datensatzes) und ValidTo (Gültig-Bis des Datensatzen). Nun bevor ja der aktuelle Datensatz mit Insert oder Update mutiert wird, muss ich diesen ja in die History-Tabelle verschieben und mit dem ValidTo auf das aktuelle Datum setzen. Erst dann schreibe ich die Änderung wieder in die Original-Tabelle. Was passiert aber, wenn ich eine Mutation in die Zukunft mache, somit wird es ja schwierig für die Datenhaltung? Welchen Record muss ich in der Original-Tabelle beibehalten -> die letzte Mutation oder den gültigen Record (wie kann ich diesen ermitteln)? Das ganze zeigt sich ja sehr schwierig, was die SQL-Querys angeht... Ich möchte diese Historisierugn in meine JAVA API JPA einbinden. Habe hier einen Knüppel in der Leitung. Wäre für jede Hilfe sehr dankbar.

mfg eltigree

-> ExistsFrom
-> ExistsTo
-> ValidFrom
-> ValidTo