Zum Inhalt springen

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

FeldTypPflichtHinweise
iduuidjaPK
relation_type_iduuidjaFK → DDM_RELATION_TYPE
keytextjaeindeutig je DDM_RELATION_TYPE, Format ^[a-z][a-z0-9_]*$
labeltextjaUI-Label
descriptiontextnein
data_typemdm.attribute_data_typejastring, text, integer, decimal, boolean, date, datetime, enum, multi_enum, json (keine reference/multi_reference — die Beziehung ist die Referenz)
requiredbooleanjadefault false
filterablebooleanjadefault true
sortablebooleanjadefault false
sort_orderintegerjadefault 100
default_valuejsonbnein
enum_set_iduuidbedingtbei enum/multi_enum Pflicht
min_value / max_valuenumericnein
regex_patterntextnein
validation_rulejsonbjadefault '{}', JSON-Objekt-Constraint
is_activebooleanjadefault true
metadatajsonbjadefault '{}'
created_at / updated_at / created_by / updated_byStandardfelder

Constraints

  • relation_type_attribute_unique_per_type_uk auf (relation_type_id, key)
  • relation_type_attribute_key_format_chk
  • relation_type_attribute_metadata_is_object_chk, relation_type_attribute_validation_rule_is_object_chk
  • relation_type_attribute_min_max_chk
  • relation_type_attribute_enum_chk (bei enum/multi_enum muss enum_set_id gesetzt 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_type auf (relation_type_id, sort_order, key)

Verhalten

  • Service-Layer validiert DDM_ENTITY_RELATION.attributes gegen aktive Attributdefinitionen analog zur Entity-Validierung.
  • Suche/Filter über DDM_ENTITY_RELATION.attributes lä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.

Verwandte Dokumente