Galera,
Estou modelando um banco de dados relacional e como não tenho essa pratica fiquei com uma duvida sobre as chaves das tabelas. Particularmente ja trabalhei (como desenvolvedor) com ambas situações, e para ser sincero prefiro usar chave natural por ficar mais claro (natural) o identificador unico da tabela. Mas sei que chave natural tem seus problemas (tendencia a chaves compostas, risco do negocio mudar e ter que alterar a chave…) da mesma forma que usar um identificador artificial também tem suas particularidades. Queria saber a opnião de outras pessoas com relação a esse assunto, ou seja, qual o melhor custo beneficio. Vou criar um banco que tende a ser muito grande (muitas tabelas e dados) e a aplicação vai usar um framework de ORM. Como exemplo classico, para o caso da chave artificial eu teria para uma tabela ‘Pessoa’ um campo ‘id’ do tipo ‘int’ sequencial, com uma unique key no campo ‘cpf’. Para o mesmo exemplo usando o formato natural, eu não teria o campo ‘id’ e tornaria o campo ‘cpf’ chave. Qual a opnião de vocês considerando varias variaveis como performance, clareza, consistencia…?
Grato.