History

Bei einigen Objekten benötigen wir historische Daten. Ein perfektionistisches System würde sogar alle Daten historisieren, da es keine Daten wegwerfen möchte. Das Optimum liegt irgendwo dazwischen; es kann jedoch durchaus eintreten, dass man in einer späteren Phase Objekte neu historisch führen möchte.

Wiederum wird man hier Vererbung einsetzen : Man leitet alle historisch zu führenden Objekte von einem History-Objekt ab. Dieses kann auch Informationen über den Ursprung der Daten enthalten : Wer sie erstellt hat und wann. Wir verzichten im Moment darauf; lediglich ein Eintrag über die Mutationsart ist immer vorhanden. Die Grunddaten bestehen aus dem Gültigkeits-Zeitintervall, durch welches sich die einzelnen Records lückenlos aneinanderfügen.

Folgende Objekte werden historisch geführt :

Partner
Beziehung
Vertrag
VertagsRecord

Manchmal wird nicht nur eine, sondern es werden zwei Mutationsarten geführt; eine für das Beginndatum und eine für das Enddatum.

Folgende Regeln gelten für die Verknüpfung der Historien der Objekte:

die Historie der Partner ist unabhängig von den anderen Historien, ausser dass das Ableben einer Person auch dessen Beziehungen beendet.
endet ein Vertrag, so auch seine Beziehungen