Zum Inhalt springen

DDM_ENTITY_TYPE

Status: Entwurf · Spec-Kandidat: ja

Zweck

Definition eines fachlichen Typs (z. B. customer, service, location). Klassifiziert konkrete Entitäten und ist Anker für Attributdefinitionen, Beziehungstypen und typisierte Views.

Felder

FeldTypPflichtHinweise
iduuidjaPK, gen_random_uuid()
tenant_iduuidjaFK → AA_TENANT, default Mandant in V1 (public)
keytextjaeindeutig je Tenant, Format ^[a-z][a-z0-9_]*$
nametextjamenschenlesbarer Name
descriptiontextneinfreie Beschreibung
is_activebooleanjadefault true, deaktivierte Typen sollen nicht mehr für neue Entitäten gewählt werden können
versionintegerjadefault 1, Vorbereitung für Typdefinitions-Versionierung (FR-104)
metadatajsonbjadefault '{}', JSON-Objekt-Constraint
created_at / updated_attimestamptzjatrigger-gepflegt
created_by / updated_bytextneinBenutzerkennung

Constraints

  • entity_type_key_format_chk: key ~ '^[a-z][a-z0-9_]*$'
  • entity_type_metadata_is_object_chk: jsonb_typeof(metadata) = 'object'
  • Unique: (tenant_id, key) (entity_type_key_per_tenant_uk)

Trigger

  • trg_entity_type_set_updated_at setzt updated_at bei UPDATE.

Beziehungen

  • 1:n DDM_ENTITY_TYPE_ATTRIBUTE (Attributdefinitionen)
  • 1:n DDM_ENTITY (klassifizierte Datensätze)
  • 1:n DDM_RELATION_TYPE als Quelle und als Ziel (from_entity_type_id, to_entity_type_id)
  • referenziert von DDM_ENTITY_TYPE_ATTRIBUTE.reference_entity_type_id

Verhalten

  • Neue Entitätstypen werden ohne DB-Schemaänderung angelegt (NFR-004, AC-001).
  • Per Konvention soll je aktivem Typ ein Reporting-View mdm.v_<key> existieren (siehe Views).

Offen

  • Typdefinitions-Versionierung (FR-104): Datenmodell hat version-Feld, aber Workflow (Klonen alte Definition, Migration bestehender Entitäten) ist nicht spezifiziert.
  • Deaktivieren vs. Soft Delete: Tabelle hat aktuell kein deleted_at, nur is_active. Falls vollständige Stilllegung gewünscht, separat klären.

Verwandte Dokumente