Por favor, sempre mantenha as discussões na lista! É contraproducente
manter em particular, e diminui a comunidade.
Le 07/06/12 20:08, Carlos Antônio Pereira a écrit :
> Então, um assunto muito parecido surgiu em um ambiente que participo.
Ambiente, como assim?
> Lá eles defendem o padrão NLP e dizem que as chaves compostas têm quer
> ser manidas.
Mantidas? O que seria NLP? E qual a alternativa a ‘manter’ as chaves
compostas?
Chaves sempre têm de ser declaradas, primárias ou não, simples ou
compostas… a questão é que há quem defenda criar chaves artificiais para
serem declaradas como primárias, mas mesmo assim essas devem
complementar as naturais, nunca prescindindo da declaração de todas as
chaves naturais, quer sejam simples ou compostas, sejam primárias ou
alternativas (UNIQUE).
> Eu apresentei o exemplo abaixo (cardinalidade N:N), justificando o uso
> de chave composta:
>
> fornecedor(cod_forncedor, nome...) //PK = cod_forncedor
> categoria(cod_categoria, descricao...) //PK = cod_categoria
>
> forncedor_categoria (cod_categoria, cod_forncedor) //PK = cod_categoria
> + cod_forncedor //FK1=cod_tegoria //FK2=cod_forncedor
Sim, é o óbvio e é um exemplo praticamente de livro-texto.
A única coisa a se discutir aí é se os códigos são naturais ou
artificiais.
> A meu ver, isso resolveria o problema.
Que problema? Tu ainda não colocaste o problema para o qual propuseste
solução…
> A solução NLP:
> forncedor_categoria (id, cod_categoria, cod_forncedor) //PK = id //UK =
> cod_categoria + cod_forncedor //FK1=cod_tegoria //FK2=cod_forncedor
Argh! Para quê um id aí? Não há nada a se identificar no caso que nõa
seja identificado pela combinação dos códigos… é uma entidade fraca, um
n:m, não uma entidade forte.
> Na minha solução resolve-se com chave primária composta.
Obviamente!
> No NLP seria uma Unique Key
Que muita gente ‘esquece’ de declarar…
> e ainda ganharia de brinde esse id e uma
> sequence.
Gordura inútil.
> Na minha opnião esse id não tem contexto nenhum (melhor para identificar
> o registro unicamente)
Melhor em quê? Pelo contrário, pior, porque se não se declara a chave
natural, convidam-se duplicados, além da gordura.
> mas ninguem vai usar esse campo para consulta,
> etc. Logo, não contribuiria significativamente.
Pelo contrário, ele impõe vários custos. Em que contribuiria, ainda que
insignificantemente?
--
skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191 gTalk: xmpp:[email protected]
+55 (61) 9302 2691 ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3 MSN: msnim:[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral