Uma dúvida sobre banco de dados. Há algum problema em usar os dados de uma tabela (como RG) como chave primária desta tabela ao invés do classico ID controlado pelo próprio SGBD?
Chaves Primárias
2 Respostas
Problema, problema mesmo, dificilmente, mas alguns campos são melhores que outros para serem chave primária de uma tabela…
A chave primária já é indexada por padrão numa tabela, e o SGBD busca mais rapidamente através de campos indexados, sendo assim um campo numérico facilitaria bastante!! Se você está usando caracteres no caso do RG (".", “-”, etc) esquece, vai ficar horrível varrer os dados nessa tabela ou fazer consultas relacionando com outras tabelas…
Falando nas relações, imagine, você vai ter que dizer que o usuário Rafael é o número [telefone removido] em tooooda tabela que se referenciar com o usuário Rafael… Fora que sua tabela ao invés de começar com o índice 1, vai ter um [telefone removido].
Bom… são diversos os motivos para você não fazer isso, mas problema mesmo, dificilmente você vai ter.
Concordo com o Leandro. Você está atrelando a sua PK à lógica do seu domínio. Vamos supor que amanhã as regras do seu domínio mudem e a identidade da “Pessoa” seja dada pelo seu nome ao invés do RG (é só pra ilustrar, este caso não vai acontecer com este seu exemplo do RG mas poderia acontecer com outro domínio). E aí? Você vai mudar a PK da tabela? Meio arriscado né?