Hello,
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).
ich lese deine Erklärung, aber mir ist noch nicht ganz klar wozu du sie benötigst.
- Wenn dein Datensatz ein inhaltliches gültigAb/bis hat, dann sollte er dies auch in der "Produktivtabelle" haben. In dem Fall reicht also das technisch gültigAb/bis, weil der Rest unverändert in die Historie übernommen wird
- Wenn dein Datensatz kein inhaltliches gültigAb/bis hat, warum solltest du dann in der Historie eines eröffnen wollen? Wo ist der Unterschied.
-> so wie ich es sehe (und wir es beim Kunden einsetzen) reicht ein zusätzliches Pärchen um den Gültigkeitsbereich des archivierten Satzes zu erfassen
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.
Zunächst mal kannst du die Antwort auf eine Fragen in Form von BEFORE INSERT/DELETE/UPDATE Triggern suchen. Mit diesen erhälst du Zugriff auf die relevanten Informationen und kannst die Sätze übertragen.
Wir machen es tatsächlich so, dass die Historie einen 100% Spiegel des Produktivbestands darstellt, also auch den aktuellen Satz mit enthält. Wer sich das warum mal überlegt hat übersteigt gerade meine Kenntnis, es erleichtert aber zumindest mal die Auswertung: alle Daten sind garantiert an einer Stelle zu finden, gleichzeitig bleiben die Produktivtabellen schlank und enthalten nur die Daten, die wirklich inhaltlich gültig sind.
Aber ja, man muss sich trotzdem der Tatsache bewusst sein, dass man sich die schlanken Produktivtabellen in Form von zusätzlichen Triggern erkauft.
MfG
Rouven
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
Death is nature's way of telling you to slow down.