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
| Feld | Typ | Pflicht | Hinweise |
|---|---|---|---|
id | uuid | ja | PK, gen_random_uuid() |
tenant_id | uuid | ja | FK → AA_TENANT, default Mandant in V1 (public) |
key | text | ja | eindeutig je Tenant, Format ^[a-z][a-z0-9_]*$ |
name | text | ja | menschenlesbarer Name |
description | text | nein | freie Beschreibung |
is_active | boolean | ja | default true, deaktivierte Typen sollen nicht mehr für neue Entitäten gewählt werden können |
version | integer | ja | default 1, Vorbereitung für Typdefinitions-Versionierung (FR-104) |
metadata | jsonb | ja | default '{}', JSON-Objekt-Constraint |
created_at / updated_at | timestamptz | ja | trigger-gepflegt |
created_by / updated_by | text | nein | Benutzerkennung |
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_atsetztupdated_atbei UPDATE.
Beziehungen
- 1:n
DDM_ENTITY_TYPE_ATTRIBUTE(Attributdefinitionen) - 1:n
DDM_ENTITY(klassifizierte Datensätze) - 1:n
DDM_RELATION_TYPEals 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, nuris_active. Falls vollständige Stilllegung gewünscht, separat klären.