Serial como chave primária fantasma

Serial como chave primária fantasma

por Vinícius Nascimento Silva -
Número de respostas: 1

Lendo algumas coisas pela internet (exemplo 1, exemplo 2) que não há muitas vantagens em usar campos do tipo varchar como primary key. Mas na nossa modelagem, não há nenhum tipo de código numérico no minimundo que seja óbvio para ser chave primária.

Há algum problema de, no modelo físico, utilizar número serial como chave primária e manter como UNIQUE a chave primária escolhida no modelo lógico?

Em resposta à Vinícius Nascimento Silva

Re: Serial como chave primária fantasma

por Kelly Rosa Braghetto -

Oi, Vinícius.

Com muita frequência projetistas de BDs fazem isso que você sugeriu: substituir uma chave primária que é uma cadeia de caracteres por uma chave artificial que é um número inteiro sequencial. Isso pode sim trazer melhorias no desempenho, mas depende muito do tipo das consultas  mais frequentes que você terá no seu BD.

Se a sua chave for uma cadeia de caracteres de tamanho fixo e ela for curta (por exemplo, tiver menos que uma dezena de caracteres), a troca pode nem trazer o benefício imaginado.

Então, vocês podem sim fazer essa substituição no modelo relacional do projeto de MAC439, mas não de forma indiscriminada. Se vocês tiverem uma chave que é cadeia de caracteres de tamanho indefinido ou muito grande, ou uma que se "espalhará" para várias outras tabelas relacionadas e que terá que ser usada junto com outros atributos para formar chaves compostas, então a substituição pode se justificar.

Em nossa próxima aula, na quarta-feira, falarei com mais detalhes sobre isso para vocês, para discutirmos os prós e contras, ok?

Até mais,

Kelly