DDM_RELATION_TYPE_ATTRIBUTE
Status: Entwurf · Spec-Kandidat: ja
Zweck
Spiegelung von DDM_ENTITY_TYPE_ATTRIBUTE für Beziehungen. Definiert pro DDM_RELATION_TYPE welche fachlichen Eigenschaften eine Beziehung tragen darf und wie diese validiert / dargestellt werden. Wert lebt in DDM_ENTITY_RELATION.attributes (JSONB).
Beispiele: Vertragsbeziehung mit contract_no, start_date, discount_percent; Lieferanten-Kunde-Beziehung mit priority, payment_terms; Verantwortlichkeitsbeziehung mit share_percent.
Felder
| Feld | Typ | Pflicht | Hinweise |
|---|---|---|---|
id | uuid | ja | PK |
relation_type_id | uuid | ja | FK → DDM_RELATION_TYPE |
key | text | ja | eindeutig je DDM_RELATION_TYPE, Format ^[a-z][a-z0-9_]*$ |
label | text | ja | UI-Label |
description | text | nein | |
data_type | mdm.attribute_data_type | ja | string, text, integer, decimal, boolean, date, datetime, enum, multi_enum, json (keine reference/multi_reference — die Beziehung ist die Referenz) |
required | boolean | ja | default false |
filterable | boolean | ja | default true |
sortable | boolean | ja | default false |
sort_order | integer | ja | default 100 |
default_value | jsonb | nein | |
enum_set_id | uuid | bedingt | bei enum/multi_enum Pflicht |
min_value / max_value | numeric | nein | |
regex_pattern | text | nein | |
validation_rule | jsonb | ja | default '{}', JSON-Objekt-Constraint |
is_active | boolean | ja | default true |
metadata | jsonb | ja | default '{}' |
created_at / updated_at / created_by / updated_by | – | – | Standardfelder |
Constraints
relation_type_attribute_unique_per_type_ukauf(relation_type_id, key)relation_type_attribute_key_format_chkrelation_type_attribute_metadata_is_object_chk,relation_type_attribute_validation_rule_is_object_chkrelation_type_attribute_min_max_chkrelation_type_attribute_enum_chk(beienum/multi_enummussenum_set_idgesetzt sein)relation_type_attribute_no_reference_chk:data_type NOT IN ('reference', 'multi_reference'). Beziehungs-Attribute können selbst keine Beziehungen sein.
Trigger
trg_relation_type_attribute_set_updated_at
Indizes
ix_relation_type_attribute_relation_typeauf(relation_type_id, sort_order, key)
Verhalten
- Service-Layer validiert
DDM_ENTITY_RELATION.attributesgegen aktive Attributdefinitionen analog zur Entity-Validierung. - Suche/Filter über
DDM_ENTITY_RELATION.attributesläuft im V1 über GIN-Index auf JSONB; gezielte Expression-Indizes können je nachgefragtem Attribut ergänzt werden. - Reporting-Views auf Relationen (
mdm.v_<DDM_RELATION_TYPE.key>_relation) sind optional und folgen derselben Konvention wie die typisierten Entity-Views.