Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor maneira com tabelas de relação


A maneira que você tem é a mais ideal no que diz respeito às restrições de tempo. Claro, ocupa mais espaço, mas isso faz parte da compensação espaço-tempo - Se você quer ser mais rápido, você usa mais espaço; se você quiser usar menos espaço, ele ficará mais lento (em média).

Além disso, pense no futuro. No momento, você provavelmente está selecionando os países para cada usuário, mas espere. Graças à mágica do aumento de escopo, seu aplicativo um dia precisará selecionar todos os usuários em um determinado país, momento em que a varredura do campo "PAÍS" de cada usuário para encontrar correspondências será incrivelmente lenta, em vez de apenas retroceder no tabela USER_COUNTRY_REL como você poderia fazer agora.

Em geral, para uma correlação de 1 para 1 ou 1 para muitos, você pode vincular por chave estrangeira. Para uma correlação muitos-para-muitos, você deseja ter uma tabela de relação entre os dois. Esse cenário é um relacionamento de muitos para muitos, pois cada usuário possui vários países e cada país possui vários usuários.