Sto progettando un piccolo database per un progetto personale, e uno dei tavoli, chiamiamolo tabella C
, deve avere una chiave esterna a una delle due tabelle, chiamarli A
e B
, a seconda della voce. Qual è il modo migliore per implementarlo?Come gestire una relazione "OR" in un progetto ERD (tabella)?
Idee finora:
- creare la tabella con due campi chiave nullable stranieri che collegano alle due tabelle.
- Possibilmente con un trigger per rifiutare inserimenti e aggiornamenti che risulterebbero 0 o 2 di essi nulli.
- due tavoli separati con dati identici
- Questo rompe la regola di duplicazione di dati.
Che cosa è un modo più elegante per risolvere questo problema?
Aggiunto il tag 'polymorphic-association' perché è un termine comune per questo tipo di relazione. –