Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Am besten mit Beziehungstabellen

Die Art und Weise, wie Sie es haben, ist zeitlich optimal. Sicher, es nimmt mehr Platz ein, aber das ist Teil des Raum-Zeit-Kompromisses - Wer schneller sein will, verbraucht mehr Platz; Wenn Sie weniger Platz verbrauchen möchten, wird es (im Durchschnitt) langsamer ausgeführt.

Denken Sie auch an die Zukunft. Im Moment wählen Sie wahrscheinlich die Länder für jeden Benutzer aus, aber warten Sie einfach. Dank der Magie des Bereichskriechens muss Ihre Anwendung eines Tages alle Benutzer in einem bestimmten Land auswählen. An diesem Punkt wird das Scannen des Felds „LAND“ jedes Benutzers, um Übereinstimmungen zu finden, unglaublich langsam sein, anstatt nur rückwärts durchzugehen USER_COUNTRY_REL-Tabelle, wie Sie es jetzt tun könnten.

Im Allgemeinen können Sie für eine 1-zu-1- oder 1-zu-viele-Korrelation per Fremdschlüssel verknüpfen. Für eine Viele-zu-Viele-Korrelation möchten Sie eine Beziehungstabelle zwischen den beiden haben. Dieses Szenario ist eine Viele-zu-Viele-Beziehung, da jeder Benutzer mehrere Länder hat und jedes Land mehrere Benutzer hat.