Hello,
In der Konzeption der bitemporalen Datenhaltung wird explizit von 4 zusätzlichen Datumseinträgen gesprochen. Dies soll eine lückenlose Historisierung darstellen. Dadurch kann ja genau ermittelt werden, ab wann ein Datensatz existiert und was dieser für einen Gültigkeitsbereich hat.
leuchtet mir zwar irgendwie ein, aber wie gesagt, NUR wegen der Historisierung machen nur zwei der vier Zeitfelder aus meiner Sicht Sinn, die anderen beiden stellen auch für einen aktiven Satz gültige Informationen dar (siehe mein Beispiel).
Aber am Ende des Tages ist das verwand mit der Diskussion "alles in einer Tabelle" vs. "Trennung Produktion-Archiv"
Ich muss meine API so anpassen, dass ich in meinen Daten über ein Datum "blättern" kann, so dass ich die Daten wirklich per Datum (vergangenheit und zukunft) abrufen kann. Ich habe nur mehrmals davon gelesen, dass man diese Daten trennen sollte, so dass in der haupttabelle jeweils der gültige Satz enthalten ist.
der Witz deiner 4 Felder ist, dass es nicht "den" gültigen Satz sondern "die" gültigen Sätze gibt - abhängig von deinem Betrachtungswinkel entweder "technisch" oder "fachlich"
In Ergänzung zu meinem Beispiel, folgende Fragestellungen:
(1) Nenne mir den Wohnort des Kunden für 2008!
Antwort:
01.01.-30.06. FFM
01.07.-31.12. Berlin
(2) Nenne mir den Wohnort des Kunden für 2008, so wie er mir am 05.01. bekannt war!
01.01.-31.12. FFM
(3) Nenne mir alle Wohnorte, so wie sie mir mal bekannt waren:
siehe (1) + (2)
Das Before insert / update / delete kenne ich, aber ich weiss nicht wie ich das z.B. bei jpa lösen soll, da hier die daten über ein binding (toplink) gekoppelt sind...
korrigiere mich wenn ich falsch liege, aber das ist Java-Ebene. Bei den Triggern rede ich über die Datenbankebene. Der ist es dann egal, wer auf die zugreift, die Historienverwaltung macht die Datenbank. Machen wir hier genau so, die Anwendung läuft auf Entity-Beans, irgendwann persistiert der Application-Server und die Datenbank kümmert sich um die Verwaltung der Historie.
MfG
Rouven
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
"I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us." -- J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"