Le 20 mai 2015 09:00, "Matheus de Oliveira" <[email protected]> a
écrit :
>
> On Wed, May 20, 2015 at 12:25 AM, Danilo Silva <[email protected]>
wrote:
>> CREATE TABLE _cargos (
>> car_codcargo integer[],
>> ... );
>>
>> CREATE TABLE _funcionarios (
>> fun_codfunc serial,
>> fun_codcargo integer[] NOT NULL,
>> ... );
>
> Você pode fazer com triggers, mas não é tão fácil quanto parece, por
causa da concorrência. O melhor mesmo nesse caso seria utilizar uma tabela
de ligação, modelo tradicional.

O tradicional, neste caso, também é ótimo, por tornar o modelo mais
transparente.

Ajudaria também melhorar a convenção de nomenclatura, evitando os prefixos
de nome de relação (tabela) nos nomes de atributos (campos).  O nome de
atributo ser igual ao do domínio (sem prefixo de nome de relação) inclusive
facilita a escrita de SQL, não somente sendo mais concisos mas ainda
permitindo, por exemplo, junções implícitas.

Outra dica é declarar chaves naturais, não apenas as artificiais, que
geralmente são redundantes.

-- 
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

Responder a