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

Chaves primárias do MySQL


Explica o que é uma chave primária e por que ela é parte integrante dos bancos de dados relacionais.

Quando criamos nossas duas tabelas, também criamos uma chave primária para cada tabela.

Quando você expande os nós à esquerda SCHEMAS guia, você pode ver as chaves primárias (e chaves estrangeiras - vamos chegar às próximas) listadas em cada tabela:

Como mostra a captura de tela anexa, os Indexes os nós contêm quaisquer índices (no nosso caso, chaves estrangeiras e/ou chaves primárias). Essas chaves primárias e chaves estrangeiras estão lá apenas porque as especificamos em nosso código quando criamos as tabelas.

Especificamente, usamos PRIMARY KEY (FruitId) para fazer o FruitId coluna a chave primária para a Fruta tabela e usamos PRIMARY KEY (UnitId) para tornar o UnitId coluna a chave primária para as Unidades tabela.

O que é uma chave primária?


Uma chave primária (também chamada de chave exclusiva ) é uma coluna que foi alocada como o campo identificador exclusivo. O valor em uma coluna de chave primária é exclusivo para cada registro. Em outras palavras, dois registros não podem compartilhar o mesmo valor nessa coluna.

Um exemplo clássico de um campo de chave primária é um campo "ID". A maioria das tabelas terá um campo de ID que fornece um identificador exclusivo para cada registro. Os exemplos podem incluir "CustomerId", "ProductId", "FruitId", etc. Sem campos de ID como esses, a função do seu banco de dados seria severamente prejudicada. Se você tivesse dois ou mais clientes com o mesmo nome, como poderia encontrar o registro deles? Embora seja verdade que você possa encontrar algo único em cada registro, é muito mais simples e fácil ter uma coluna cujo objetivo principal é fornecer identificação exclusiva para cada registro.

Um primário pode ser um valor normal que é garantido como exclusivo (um número ISBN para livros, código de produto, etc.), ou pode ser um valor gerado pelo aplicativo ou DBMS especificamente para ser exclusivo (como um valor globalmente exclusivo identificador ou inteiro de incremento automático).

Escolhendo uma chave primária


Tenha cuidado ao escolher uma coluna para sua chave primária. Você precisa ter certeza de que cada registro terá um e que não há possibilidade de que dois registros compartilhem o mesmo valor ou que um registro tenha mais de um valor.

Por exemplo, usar o endereço de e-mail do usuário pode funcionar em alguns casos, mas não é uma base muito sólida para um identificador exclusivo. Os usuários podem alterar seu endereço de e-mail. Os usuários podem compartilhar endereços de e-mail. Alguns usuários podem não ter um endereço de e-mail. Claro, você poderia escrever seu sistema para evitar que os usuários alterassem seu endereço de e-mail ou o compartilhassem, mas seu sistema não seria muito flexível ou amigável.

Você pode exigir que todos os usuários tenham um nome de usuário exclusivo. Isso poderia funcionar. No entanto, você precisa pensar cuidadosamente sobre todas as possibilidades. Se houver alguma chance de os usuários alterá-lo ou compartilhá-lo (passado, presente ou futuro), não o use como chave primária. E se "TechGuy12" desativar sua conta. Isso significa que outro usuário agora pode usar "TechGuy12"? Isso será um problema para o seu aplicativo ou algum relatório que você precise gerar?

Se você tiver alguma dúvida sobre a "singularidade" do seu campo de chave primária, use um número gerado automaticamente que aumenta a cada registro criado.