sql >> Database >  >> RDS >> Mysql

Zijn meerdere externe sleutels zinvol?

Dit is prima, maar let op:het heeft alleen zin als een C altijd zowel een A als een B als paar moet hebben.

Als je alleen wilt dat A's C's hebben en B's C's, maar A en B zijn verder niets met elkaar te maken, dan moet je de externe sleutel in A en in B plaatsen en toestaan ​​dat deze nullable is.

Update:na verduidelijking lijkt het erop dat je twee afzonderlijke relaties wilt:een A kan veel C's hebben en een B kan veel C's hebben, maar een C kan maar bij één A of één B horen.

Oplossing:het zijn twee afzonderlijke een-op-veel-relaties, dus maak twee nieuwe tabellen A_C en B_C en plaats de externe sleutels daar. A_C bevat een refererende sleutel naar A en een refererende sleutel naar C. Hetzelfde geldt voor B_C.



  1. Hoe te repareren "Procedure verwacht parameter '@statement' van het type 'ntext/nchar/nvarchar'." Fout in SQL Server

  2. MySQL #1364 - Veld 'column_name' heeft geen standaardwaarde - kan niet in DB worden ingevoegd

  3. Hoe het laden van gegevens van oracle sql naar pandas df . te versnellen

  4. Verschil tussen een gebruiker en een login in SQL Server