sql >> Base de Datos >  >> RDS >> Mysql

La mejor manera con tablas de relaciones.

La forma en que lo tiene es la más óptima en lo que respecta a las limitaciones de tiempo. Claro, ocupa más espacio, pero eso es parte del intercambio espacio-tiempo - Si quieres ser más rápido, usas más espacio; si desea usar menos espacio, se ejecutará más lentamente (en promedio).

Además, piensa en el futuro. En este momento, probablemente esté seleccionando los países para cada usuario, pero espere. Gracias a la magia del aumento del alcance, su aplicación algún día necesitará seleccionar a todos los usuarios en un país determinado, momento en el que escanear el campo "PAÍS" de cada usuario para encontrar coincidencias será increíblemente lento, en lugar de simplemente retroceder a través del tabla USER_COUNTRY_REL como podría hacer ahora.

En general, para una correlación de 1 a 1 o de 1 a muchos, puede vincular mediante clave externa. Para una correlación de muchos a muchos, desea tener una tabla de relaciones entre los dos. Este escenario es una relación de muchos a muchos, ya que cada usuario tiene varios países y cada país tiene varios usuarios.