Objektbeziehungen

Geschäftsobjekte können untereinander in beliebiger Beziehung (Relationen) stehen. Dabei spielt die konkrete Art des Objektes keine Rolle.

Vorüberlegungen

  • Der PiB Store enthält eine zentrale Tabelle zur Verwaltung der Relationen von Objekten, dafür wird die UniqueId der Geschäftobjekte verwendet
    • Relationen erhalten eine eigene UniqueId. Ein kombinierter Schlüssel aus den UniqueIds der Geschäftobjekte wird nicht verwendet, da die selben Objekte mehrfach verknüpft sein können, mit unterschiedlichen Verknüpfungsdaten (z.B. Art der Beziehung, Zeitraum...)
    • Weitere Daten beliebiger Art müssen sich mit Relationen verknüpfen lassen, es ist zu prüfen, ob man die Relationen selbst als Geschäftobjekte betrachten kann und sollte. Eine andere Möglichkeit wäre die Persistierung in einem Datenfeld im JSON-Format.
    • Der Relationsspeicher verhält sich agnostisch zu den gespeicherten Beziehungen. A->B- und B->A-Beziehungen sollten nicht "gedoppelt" bzw. rekursiv hinterlegt werden. Da aufgrund der anhängenden Attribute die Flexibilität sehr hoch sein muss, ist es Aufgabe der konkreten Implementierung, für eine saubere Struktur zu sorgen.

Beziehungen sind definiert durch:

  • Art der Beziehung: hierbei handelt es sich um eine vom Framework vorgegeben Liste von Möglichkeiten
  • Unterart: diese kann von der konkreten Implementierung festgelegt werden
  • Richtung: d.H. gerichtet oder ungerichtet
  • Gültigkeitszeitraum: Beziehungen können sich im Laufe der Zeit ändern. Bspw. eine Beziehung der Art Unternehmen <-> Inhaber, der Zeitraum kann damit als eine Art der Historisierung verwendet werden.
  • Attribute: erlaubt das Speichern von weiteren Attributen an der Kante der Beziehung, kann von der konkreten Implementierung ausgewertet werden.

Zuletzt geändert: 26.11.2021 16:12:09 (erstmals erstellt 11.02.2019)