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

Bedste måde med relationstabeller

Den måde, du har det på, er den mest optimale for så vidt angår tidsbegrænsninger. Selvfølgelig fylder det mere, men det er en del af space-time tradeoff - Hvis du vil være hurtigere, bruger du mere plads; hvis du vil bruge mindre plads, vil den køre langsommere (i gennemsnit).

Tænk også på fremtiden. Lige nu vælger du sandsynligvis landene for hver bruger, men vent bare. Takket være magien ved scope creep vil din applikation en dag skulle vælge alle brugerne i et givet land, hvorefter det vil være utroligt langsomt at scanne hver brugers "COUNTRY"-felt for at finde matches, i modsætning til bare at gå baglæns gennem USER_COUNTRY_REL tabel som du kunne gøre nu.

Generelt, for en 1-til-1 eller 1-til-mange korrelation, kan du linke med fremmednøgle. For en mange-til-mange korrelation vil du have en relationstabel imellem de to. Dette scenarie er et mange-til-mange forhold, da hver bruger har flere lande, og hvert land har flere brugere.



  1. Left Outer Join returnerer ikke alle poster fra den primære tabel

  2. Ugyldigt antal og sum i krydsfaneforespørgsel ved brug af PostgreSQL

  3. SQL GROUP BY- 3 nemme tips til at gruppere resultater som en professionel

  4. Hvordan man skriver et regex lookahead/lookbehind i mysql