> Nesse caso, fica mais interessante ainda que a chave natural seja a
> primária, evita muitas junções provavelmente.
Certo.

Agora, vamos supor que tivessemos uma outra tabela, "camisas", por 
exemplo, que faz relacionamento com a tabela "cores" do exemplo anterior.

Ao inserir um novo registro na tabela "camisas" o Postgres precisa fazer 
a verificação de chave estrangeira, na tabela "cores".  Por ser uma 
chave estrangeira VACHAR(30) ou CHAR(30), por exemplo, é mais caro, para 
o Postgres que se fossê uma chave do tipo inteira?

Ou, caso você precise fazer junções com chaves estrangeiras do tipo 
CHAR, ou DATE, etc.
Será que a performance cairia, pelo fato de o tipo não ser INT ?
Uma junção entre chaves simples é muito mais rápido que uma entre chave 
composta ?
Ou nestes casos o que manda mesmo é sempre o bom-senso? "Vou utilizar 
uma chave artificial pois o tipo INT é mais rápido neste caso...".

Na realidade eu farei uns testes, para responder as minhas próprias 
questões.
A vantagem de não fazer junções desnecessárias, e manter a modelagem 
"limpa", é tentadora.
Caso estas questões de tipo sejam apenas "lendas urbanas" não vejo 
motivo algum para chaves artificiais. Estou errado ?

Acho que ainda há tempo de pegar o caminho certo...
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a