Vous n'avez pas besoin de leur donner des noms différents. Vous pouvez avoir une colonne FAM_ID dans FAMILY, une colonne FAM_ID dans DOCUMENTS et une colonne FAM_ID dans CONTACT.
Dans ce cas, les nommer la même chose indique clairement qu'ils se réfèrent à la même chose. Mais vous pouvez également proposer une autre convention de dénomination si vous le souhaitez.
Par exemple, j'utilise quelque chose comme family_ID
dans la table de famille, et contact_familyID
, document_familyID
en s'y référant à partir des tables de contact et de document.
Le seul inconvénient de les nommer de la même manière, pour autant que je sache, est que lorsque vous effectuez des jointures, vous ne pouvez pas simplement vous y référer par nom de colonne, vous devez les alias ou vous y référer par tablename.columnname.
Edit :Je pense avoir trouvé ce que vous entendez par ne pas pouvoir avoir le même nom. C'est le cas lorsque vous ajoutez une relation de clé étrangère dans une seule table, comme décrit ici :http://bugs.mysql.com/bug.php?id=46363