Zum Inhalt springen
CodamAI

Beziehungen, die beide Seiten kennen

Objekte stehen selten allein. Data Management pflegt Verbindungen zwischen Modellen auf beiden Seiten und schreibt zusammengehörige Objekte in einer einzigen Anfrage, die ganz oder gar nicht gelingt.

Vier Beziehungstypen, immer als Paar

Eine Beziehung verbindet zwei Modelle: Ein Auftrag gehört zu einem Kunden, ein Kunde hat viele Aufträge. Im Hub legen Sie eine Seite an, die Gegenseite entsteht automatisch mit der passenden umgekehrten Art. Entfernen Sie eine Seite, verschwindet die andere mit.

  • 1:1 – genau ein Objekt auf jeder Seite
  • 1:n und n:1 – ein Objekt hat viele, viele gehören zu einem
  • n:m – viele auf beiden Seiten, etwa Gruppen und Rollen
Dialog „Feld anlegen“ im Reiter Relation: Beziehung „primaryContact“ vom Account zum Contact als n:1 mit Diagramm der Kardinalität
Eine n:1-Beziehung vom Account zum Hauptkontakt – die Gegenseite am Kontakt entsteht automatisch.

Was über eine Beziehung erlaubt ist

Beim Schreiben setzt Data Management beide Enden selbst. Sie schreiben eine Verbindung von der Seite, die für Ihren Anwendungsfall bequemer ist, und sehen sie beim Lesen auf beiden Seiten.

Ohne weitere Angabe darf eine Anfrage über eine Beziehung nur verknüpfen, also auf ein bestehendes Objekt verweisen. Anlegen, Mitändern und Mitlöschen verbundener Objekte schalten Sie je Beziehung ausdrücklich frei. Teile eines Ganzen – die Positionen einer Rechnung – bekommen typischerweise alle drei Erlaubnisse, Verweise auf Eigenständiges – der Kunde einer Rechnung – keine.

Jedes verbundene Objekt wird mit den Rechten seines eigenen Modells geprüft. Wer über eine Firma Mitarbeiter anlegt, braucht auch das Recht, Mitarbeiter anzulegen – oder eine Rolle, die genau diesen Weg freigibt.

Verschachtelt schreiben, ganz oder gar nicht

Eine Rechnung mit ihren Positionen, eine Firma mit neuen Mitarbeitern: Zusammengehöriges schreiben Sie in einer Anfrage. Ein Eintrag ohne Kennung wird angelegt, einer mit Kennung geändert oder nur verknüpft – je nach Erlaubnis. Scheitert ein einziges Kind an einer Regel oder einem Recht, wird nichts gespeichert, auch nicht das Elternobjekt.

Eine Liste beschreibt dabei den Zustand danach. Was nicht mehr darin steht, wird abgekoppelt oder – bei abhängigen Teilen – gelöscht. Auch beim Löschen geht Data Management jede Beziehung durch: Abhängige Kinder werden mitgelöscht, alle anderen nur gelöst. Fehlt für ein einziges Kind die Löschberechtigung, bleibt alles erhalten.

Verbindungen mit eigenen Angaben

Braucht eine n:m-Verbindung selbst Angaben – seit wann, in welcher Funktion –, modellieren Sie sie als eigenes Verbindungsmodell mit zwei Verweisen und eigenen Feldern. Für einfache Zuordnungen genügt die n:m-Beziehung.

Beim Lesen folgt Data Management Beziehungen nur so tief, wie die Anfrage es verlangt. Beim Schreiben verarbeitet es jedes Objekt einer Anfrage genau einmal. Verschachtelung kann sich so nie im Kreis drehen.

Wofür das im Alltag sorgt

Beziehungen werden zu einer Eigenschaft des Modells statt zu Handarbeit in jedem Dienst.

  • Keine halb gespeicherten Vorgänge: Elternobjekt und Teile entstehen gemeinsam oder gar nicht.
  • Rückverweise müssen nicht von Hand gepflegt werden.
  • Mitlöschen ist eine bewusste Entscheidung am Modell, keine Überraschung im Code.

Hintergrund zum Thema

Passt CodamAI zu Ihrem Engineering Setup?

Der ehrlichste Weg dorthin ist ein technisches Gespräch: über Ihren Stack, Ihre Delivery und die Anforderungen, die Sie nachweisen müssen.