Mysql
 sql >> Database >  >> RDS >> Mysql

Identificare la relazione - molti a molti

Dallo schema che hai fornito posso vedere che il vincolo di chiave esterna esiste sulla tabella parents_children , che garantirà che il collegamento tra genitore e figlio possa esistere solo se esistono sia genitore che figlio.

Questo però non ti impedisce di inserire una voce in parents , senza una voce di accompagnamento in parents_children o del resto children .

Quindi, in breve, questo schema consente l'esistenza di un genitore, senza un figlio.

Il problema con la tua logica qui sarebbe che sia il genitore che il figlio devono essere creati prima che la relazione possa essere creata in parents_children (a causa delle relazioni di chiave esterna). Tuttavia, la logica aggiuntiva che stai cercando (nessun figlio, nessun genitore e viceversa) richiederebbe un collegamento tra genitore e figlio prima di poter creare un genitore o un figlio.

Vedi qui il problema della gallina/uovo?