Zum Inhalt springen

Beziehungen zwischen Fachobjekten

Status: Entwurf

Wer hängt an wem? Welche Kardinalitäten? Welche Löschregeln?

Hauptbeziehungen

Entitäts-Beziehungs-Übersicht

Die vollständigen Beziehungen mit allen Kardinalitäten und Unterstrukturen (Gebäude → Wohneinheit → Zähler, Mietvertrag, PV-Anlage → Speicher usw.) sind in der Detailtabelle unten und in den jeweiligen Fachobjekt-Dokumenten beschrieben.

Übersicht der Relationstypen

(Gemappt auf relation_type der Spec — siehe ../70-mapping-to-spec/02-relationen-zu-relation-types.md)

RelationQuelle (from)Ziel (to)KardinalitätDelete-PolicyBemerkung
holding_has_subsidiaryHoldingTochtergesellschaft1:nrestrictTochter darf nicht Holding-los werden
subsidiary_has_subfirmTochtergesellschaftSub-Firma1:nrestrict
subsidiary_provides_serviceTochtergesellschaftDienstleistung1:ndetachDienstleistung kann ohne Tochter sein
subsidiary_provides_moduleTochtergesellschaftModul1:nrestrictjedes Modul hat genau eine primäre Tochter (z. B. AHI ↔ verwaltung); inverse Sicht von Modul.primary_subsidiary
owner_owns_propertyEigentümerLiegenschaft1:nrestrictEigentümer-Beziehung. Eigentümerwechsel: neue Beziehung mit neuer Periode, alte als historisch markieren
property_booked_moduleLiegenschaftModuln:mdetachaktuell aktive Module pro Liegenschaft. Beziehungs-Attribute: seit, bis, case_id (Case, durch den das Modul gebucht wurde)
case_mandated_byCaseEigentümern:1restrictMandant des Cases. Pflicht bei case_type=liegenschafts_bewertung/unit_case; leer bei reinem eigenbestand
case_selects_moduleCaseModuln:mcascadeModul-Konfiguration des Cases. Beziehungs-Attribut: is_primary (bei unit_case markiert das eine Modul, das die Tochter erbringt)
liegenschaft_has_buildingLiegenschaftGebäude1:ncascadeGebäude ohne Liegenschaft sinnlos
building_has_unitGebäudeWohneinheit1:ncascade
building_has_pvGebäudePV-Anlage1:nrestrictPV bleibt eigenständig auswertbar
pv_has_storagePV-AnlageSpeicher1:0..1detach
unit_has_meterWohneinheitZähler1:ndetach
pv_has_meterPV-AnlageZähler1:ndetach
unit_has_rent_contractWohneinheitMietvertrag1:0..1restrictAktiver Mietvertrag — nur einer aktiv
unit_has_tenant_powerWohneinheitMieterstrom-Vertrag1:0..1restrict
unit_has_tenant_accessWohneinheitMieter-Access-Vertrag1:0..1restrictperspektivisch (Modul mieter_access)
subsidiary_responsible_for_propertyTochtergesellschaftLiegenschaftn:mdetachmehrere Töchter aktiv pro Liegenschaft
provider_offers_serviceProviderDienstleistungn:mdetachgleiche Dienstleistung mehrere Anbieter
provider_offers_materialProviderMaterialn:mdetach
service_uses_materialDienstleistungMaterialn:mdetach
case_targets_propertyCaseLiegenschaft1:1restrict
case_belongs_to_subsidiaryCaseTochtergesellschaftn:1restrictbei unit_case
case_uses_modelCaseModelln:1restrict
case_aggregates_unit_caseCase (holding_case)Case (unit_case)1:nrestrictAggregations-Bezug
case_has_scenarioCaseSzenario1:ncascade
case_has_demandCaseBedarfsposition1:ncascade
demand_targets_gewerkBedarfspositionGewerkn:1restrict
demand_assigns_serviceBedarfspositionDienstleistungn:0..1detachoptional — kann auch nur Gewerk sein
demand_assigns_materialBedarfspositionMaterialn:0..ndetachmehrere Materialien je Bedarf
demand_assigns_providerBedarfspositionProvidern:0..1detach
contract_betweenVertragProvider × Empfängersiehe untenrestrict

Vertrag — n-äre Beziehung

Ein Vertrag hat mindestens drei strukturelle Beteiligte:

  • Provider (Anbieter, intern oder extern)
  • Empfänger / Kunde (Holding / Tochter / Liegenschaft / Wohneinheit / Mieter)
  • Vertragsgegenstand (Liegenschaft / Wohneinheit / PV-Anlage / Material-Lieferung / Dienstleistung)

Im Datenmodell der Spec wird das aufgelöst über mehrere binäre Relationen (relation_type ist im aktuellen Spec-Stand binär — siehe docs/spec/90-governance/03-open-questions.md OP-13a für n-äre Relationen). Pragma: Vertrag selbst ist eine Entity, die FK-/Relations-Felder zu den Beteiligten trägt.

internal_to_holding als Aggregations-Hinweis

Verträge zwischen zwei Töchtern derselben Holding bekommen internal_to_holding=true. Der Aggregator (UC-02) eliminiert solche Posten in der Holding-Sicht.

Verwandte Dokumente