DDM_ENUM_SET / DDM_ENUM_VALUE
Status: Entwurf · Spec-Kandidat: ja
Zweck
Wiederverwendbare, konfigurierbare Codelisten für Attribute mit data_type IN ('enum','multi_enum'). Trennt Bedeutung (label) und Sortierung von der fachlichen Identität (key).
DDM_ENUM_SET
| Feld | Typ | Pflicht | Hinweise |
|---|---|---|---|
id | uuid | ja | PK |
key | text | ja | global eindeutig, Format ^[a-z][a-z0-9_]*$ |
name | text | ja | |
description | text | nein | |
is_active | boolean | ja | default true |
metadata | jsonb | ja | default '{}' |
created_at / updated_at / created_by / updated_by | – | – | Standardfelder |
Constraints: enum_set_key_format_chk, enum_set_metadata_is_object_chk, Unique key.
DDM_ENUM_VALUE
| Feld | Typ | Pflicht | Hinweise |
|---|---|---|---|
id | uuid | ja | PK |
enum_set_id | uuid | ja | FK → DDM_ENUM_SET (RESTRICT) |
key | text | ja | Format ^[a-z][a-z0-9_]*$, eindeutig je enum_set_id |
label | text | ja | Anzeigename |
description | text | nein | |
sort_order | integer | ja | default 100 |
is_active | boolean | ja | default true |
metadata | jsonb | ja | default '{}' |
created_at / updated_at / created_by / updated_by | – | – | Standardfelder |
Constraints: enum_value_key_format_chk, enum_value_metadata_is_object_chk, enum_value_unique_per_set_uk (enum_set_id, key).
Verhalten
- Speicherung in
DDM_ENTITY.attributes: ein Enum-Wert wird als String mit demDDM_ENUM_VALUE.keyabgelegt;multi_enumals JSON-Array vonkeys. - Service-Layer prüft beim Schreiben, dass alle übergebenen
keys im zugehörigen Enum-Set existieren undis_active = truesind. is_active = falsedarf bestehende Werte nicht invalidieren (historische Daten bleiben gültig), neuer Eintrag mit deaktiviertemkeywird abgelehnt.- Reporting-Views können
labelüber JOIN aufDDM_ENUM_VALUEergänzen.
Offen
- Locale: aktuell nur ein
label. Mehrsprachigkeit muss separat spezifiziert werden (z. B.metadata.labels). - Migration bei Umbenennung eines
DDM_ENUM_VALUE.key: derzeit istkeynicht read-only. Auswirkung auf bestehendeDDM_ENTITY.attributes-Werte ist nicht spezifiziert.