Questo uno-a-molti può essere interpretato in inglese pianura come questo ...
una persona ha una o più responsabilità,
E
Ogni responsabilità appartiene a una persona esattamente .
Ora, a seconda di quali rdbms stai usando, dovresti implementarlo come una relazione di chiave esterna.
Per prima cosa è necessario aggiungere una colonna a RESPS che punta alla tabella delle persone.
Chiamiamo questa nuova colonna PERSON_ID.
Ora possiamo dichiarare la relazione, il codice potrebbe essere simile a questo;
ALTER TABLE [Responsibilities] ADD CONSTRAINT FOREIGN KEY (PERSON_ID)
REFERENCES [Person] (ID)
E questa dichiarazione di un vincolo di chiave esterna vorrebbe dire che da ora in poi non è possibile aggiungere una responsabilità senza specificare una persona che possiede quella responsabilità.
Ma si potrebbe ancora aggiungere una persona senza responsabilità (ancora) poiché non ci sono vincoli sulla tabella delle persone.
Si noti che questo è tutto un tipo di accademico, poiché nella vita reale le responsabilità sono condivise.
In altre parole, una persona potrebbe avere una o più responsabilità, ma ciascuna responsabilità potrebbe appartenere a una o più persone.
Questa si chiama una relazione molti-a-molti ed è un noto problema di progettazione del database con una soluzione ben definita, che non entrerò ora poiché è tangenziale alla tua domanda.
fonte
2010-08-31 10:21:07
Per le relazioni uno a molti sopra, le Responsabilità avranno PersonID come chiave esterna. La tabella Persona può avere ResponsibilityID come chiave esterna? Non mi sembra giusto, ma ho bisogno di sapere il motivo per cui è sbagliato avere chiavi esterne su entrambi i tavoli genitori e figli .. – ATHER