Zum Inhalt springen

Fachregeln

Status: Entwurf · Spec-Kandidat: ja (jede Regel muss in technische Durchsetzung übersetzt werden)

Diese Regeln sind verbindlich. Sie müssen entweder in der Datenbank, im Service-Layer oder kombiniert durchgesetzt werden – siehe Validierungskonzept.

#RegelPrimäre Durchsetzung
BR-01Jede Entität gehört genau einem Entitätstyp.DB (DDM_ENTITY.entity_type_id NOT NULL + FK)
BR-02Jeder Entitätstyp kann beliebig viele Attributdefinitionen besitzen.DB (n:1 zu DDM_ENTITY_TYPE via DDM_ENTITY_TYPE_ATTRIBUTE.entity_type_id)
BR-03Attribute werden grundsätzlich über Metadaten beschrieben.DB-Modell + Service (kein Schemawandel pro Attribut)
BR-04Flexible Attributwerte werden in JSONB gespeichert.DB (DDM_ENTITY.attributes jsonb)
BR-05Echte Beziehungen zwischen Entitäten werden relational gespeichert.DB (DDM_ENTITY_RELATION-Tabelle, FKs)
BR-06Eine Entität darf bei bestehenden kritischen Abhängigkeiten nicht unkontrolliert gelöscht werden.Service + DB (DDM_RELATION_TYPE.delete_policy)
BR-07Hard Delete ist nur administrativ zulässig.Service (Rolle Administrator)
BR-08Änderungen an Entitäten und Metadaten sind zu protokollieren.Service (Audit-Log-Schreibung in Transaktion)
BR-09Fachliche Codes müssen je Entitätstyp eindeutig sein.DB (partial unique index uq_entity_code_active)
BR-10Such- und Reporting-relevante Felder müssen indexierbar bzw. per View bereitstellbar sein.DB (Indexstrategie, Views)
BR-11Jeder schreibende und lesende API-Aufruf wird gegen die effektiven Permissions des Aufrufers geprüft.Service (RBAC + ACL via mdm.v_effective_permission)
BR-12deny schlägt allow; spezifischerer Scope schlägt allgemeineren; Default ist deny.Service (deterministische Auflösung), DB (Scope-Constraints)
BR-13System-Rollen und System-Permissions sind unveränderlich (is_system=true).Service (Schreibverbot), DB (per Permission-Layer)

Verwandte Dokumente