sql / expert
Snippet
Exclusive Arc Integrität mit Check-Constraints
Ein Exclusive Arc (oder eine polymorphe Assoziation) stellt sicher, dass ein Datensatz mit genau einem von mehreren möglichen Elternelementen verknüpft ist. Ein CHECK-Constraint auf Tabellenebene erzwingt diese Geschäftsregel mit mathematischer Sicherheit.
snippet.sql
1
2
3
4
5
ALTER TABLE entity_attachmentsADD CONSTRAINT chk_exclusive_owner CHECK ((user_id IS NOT NULL AND organization_id IS NULL) OR(user_id IS NULL AND organization_id IS NOT NULL));
Erklärung
1
ADD CONSTRAINT chk_exclusive_owner
Erstellt einen benannten Constraint zur Durchsetzung der Datentextegrität über mehrere Spalten hinweg.
2
CHECK ((user_id IS NOT NULL AND ...)
Definiert die logische XOR-Bedingung (exklusives ODER), bei der eine Spalte gesetzt sein muss und die andere null sein muss.