sql >> Database >  >> RDS >> Mysql

Dezelfde buitenlandse sleutel in meerdere tabellen

Je hoeft ze niet verschillende dingen te noemen. U kunt een FAM_ID-kolom in FAMILY, een FAM_ID-kolom in DOCUMENTS en een FAM_ID-kolom in CONTACT hebben.

Als je ze in dit geval hetzelfde noemt, wordt duidelijk dat ze naar hetzelfde verwijzen. Maar je kunt ook zelf een andere naamgevingsconventie bedenken als je wilt.

Ik gebruik bijvoorbeeld iets in de trant van family_ID in de familietabel, en contact_familyID , document_familyID wanneer u ernaar verwijst vanuit de contact- en documenttabellen.

Het enige nadeel van het hetzelfde noemen, voor zover ik kan zien, is dat je bij het doen van joins niet alleen naar de kolomnaam kunt verwijzen, je moet ze een alias geven of ernaar verwijzen met tablename.columnname.

Bewerken:ik denk dat ik heb gevonden wat je bedoelt met het niet kunnen hebben van dezelfde naam. Dit is het geval wanneer u een refererende sleutelrelatie toevoegt binnen een enkele tabel, zoals hier beschreven:http://bugs.mysql.com/bug.php?id=46363



  1. COALESCE correct gebruiken in de WHERE-clausule

  2. MySQL selecteer rijen waar de datum niet tussen de datum ligt

  3. Cumulatief optellen met dynamische basis in Postgres

  4. Gebruik van Python3 mysqlclient-1.3.6 (ook bekend als PyMySQL)?