sql >> Database >  >> RDS >> Mysql

Twee tabellen met dezelfde kolommen of één tabel met een extra kolom?

Afhankelijk van beperkingen:

  • Heeft u buitenlandse sleutels of CHEQUES op apples die niet bestaan ​​op oranges (of omgekeerd)?
  • Moet je de sleutels uniek houden in beide tabellen (dus geen apple kan dezelfde ID hebben als sommige orange )?

Als de antwoorden op deze twee vragen zijn:"ja" en "nee" , houd de tabellen gescheiden (zodat beperkingen tafelspecifiek kunnen worden gemaakt).

Als de antwoorden zijn:"nee" en "ja" , voeg ze samen (zodat je een sleutel kunt maken die beide omvat).

Als de antwoorden zijn:"ja" en "ja" , overweeg om overerving te emuleren:

Zoekgegevens is een typisch voorbeeld van tabellen die er hetzelfde uitzien, maar toch gescheiden moeten worden gehouden zodat FK's gescheiden kunnen worden gehouden.

Dit is in het bijzonder de "alle klassen in afzonderlijke tabellen"-strategie voor het representeren van overerving (ook bekend als categorie, subclassificatie, subtypering, generalisatiehiërarchie enz.). Misschien wil je een kijkje nemen in dit bericht voor meer info.



  1. pdo gratis resultaat

  2. Hoe het configuratiebestand van de officiële PostgreSQL Docker-afbeelding aanpassen?

  3. Deterministische functie in mysql

  4. MySQL JOIN met IF-voorwaarden