Pergunta

Foi-me dito por um amigo:

O que chave única que você usa? espero que você não está salvando o nome completo do usuário --- este vai usar muito espaço mesa! Atribua um ID de usuário único para cada (Única) Nome de utilizador e guarde este userID (Deve ser INTEGER UNSIGNED auto_increment ou BIGINT UNSIGNED Incremento automático). Não se esqueça de criar uma referência

FOREIGN KEY (userID) REFERÊNCIAS usertable (userID) em todas as tabelas usando o ID do usuário.

É a afirmação acima está correto? Por que ou por que não?

Foi útil?

Solução

Eu acho que ele está certo (pelo motivo errado), porque a chave primária não pode mudar, mas username pode mudar. Portanto, você deve usar userid porque não mudaria.

Outras dicas

Ele está certo pelas razões erradas. O espaço de tabela é secundário para o fato de que a sua aplicação pode depois mandato que os nomes de usuário podem ser alteradas ou mesmo deixar de ser única (você poderia imaginar uma aplicação onde nomes de usuários únicos não são necessários, como Stack Overflow) e, assim, sua aplicação seria necessário grande refatoração e migração de dados, em vez de uma mudança de luz no outro (inteiro PK) caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top