Pessoal, boa noite,

Estamos mudando algumas coisas no controle de estoque de nosso ERP, que já
está em funcionamento, porém algumas modificações eu quero usar chaves
naturais, e estas chaves são compostas.

Aqui demonstro um exemplo simples e fictício, em que a tabela
"deposito_produtos" tem uma chave natural. ( Sei que não tem a UF, para
colocar junto com a cidade, mas é apenas um exemplo bobo )

CREATE TABLE deposito_produtos(
nome VARCHAR( 50 ) NOT NULL, -- nome do deposito
cidade VARCHAR( 50 ) NOT NULL, -- cidade onde fica o deposito
tamanho_deposito NUMERIC NOT NULL, -- Tamanho do deposito em m²
PRIMARY KEY ( nome, cidade )
);

CREATE TABLE produtos(
descricao VARCHAR( 50 ) PRIMARY KEY, -- Nome do produto
nome_deposito VARCHAR( 50 ), -- Referência da tabela deposito_produtos
cidade VARCHAR( 50 ) -- Referência da tabela deposito_produtos
).

Minha dúvida é a seguinte: Se eu tivesse usado uma chave artificial na
tabela de "deposito_produtos", eu não precisaria exportar duas colunas para
a tabela "produtos", apenas a chave artificial. Então eu garantiria
unicidade com um UNIQUE CONSTRAINT.

Se eu fizer uma consulta de todos os produtos e precisar fazer um JOIN com
"deposito_produtos" para saber o tamanho do deposito, o JOIN envolveria 2
colunas de cada tabela.
Se fosse uma chave artificial seria apenas uma.

Seria justificável o uso de chaves artificiais nestes casos ?

Obrigado.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a