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

Stessa chiave esterna in più tabelle

Non è necessario nominarli con cose diverse. Puoi avere una colonna FAM_ID in FAMILY, una colonna FAM_ID in DOCUMENTS e una colonna FAM_ID in CONTACT.

In questo caso nominandoli la stessa cosa chiarisce che si riferiscono alla stessa cosa. Ma potresti anche inventare un'altra convenzione di denominazione, se lo desideri.

Ad esempio, uso qualcosa sulla falsariga di family_ID nella tabella famiglia e contact_familyID , document_familyID quando si fa riferimento ad esso dalle tabelle dei contatti e dei documenti.

L'unico aspetto negativo di nominarli allo stesso modo, per quanto posso vedere, è che quando si fanno i join non puoi semplicemente fare riferimento a loro per nome di colonna, devi alias loro o fare riferimento a loro con nometabella.nomecolonna.

Modifica:penso di aver scoperto cosa intendi per non poter avere lo stesso nome. Questo è il caso quando aggiungi una relazione di chiave esterna all'interno di una singola tabella, come descritto qui:http://bugs.mysql.com/bug.php?id=46363