2016-12-01 13:04 GMT-02:00 Márcio A. Sepp <mar...@zyontecnologia.com.br>:
>>
>> Você quer dizer tipos compostos nas chaves primárias, ou chaves
>> primárias compostas?
>
> Tipos compostos em chaves primárias.

Certo.  É pergunta tão rara, que achei que podia ter sido erro de expressão.


> Exemplo hipotético:
>
> CREATE TYPE public.tanimal AS
>    (especie integer,
>     chip integer);
>
> CREATE TABLE public.animal
> (
>   identificacao tanimal NOT NULL,
>   nascimento timestamp with time zone,
>   CONSTRAINT animal_pkey PRIMARY KEY (identificacao)
> )
>
> Numa modelagem tradicional eu teria na tabela (hipotética) de animal os 
> campos especie e chip como chave primária, pois para cada especie de animal 
> eu posso ter um chip de tamanhos diferentes e a numeração digamos que possa 
> se repetir entre os diferentes tipos de chips.
>
> Que vantagens/desvantagens eu teria em utilizar esta abordagem ao invés de 
> utilizar a tradicional?
> Onde pode ser aplicado um tipo composto e que ele se sairá melhor que a 
> modelagem tradicional?

Sinceramente não vejo vantagem alguma.  Talvez facilite mapeamento
para alguma estrutura de dados nalguma linguagem, mas não consigo
imaginar nada específico.

Na dúvida, sempre mantenha a simplicidade.  São dois atributos
diferentes, só vejo sentido se eles fossem sempre manipulados juntos.

Esse é um daqueles exemplos de como o SQL nem é relacional, nem foi
bem feito: esse TYPE do SQL não é um tipo de verdade.  Um tipo de
verdade seria uma especificação de um domínio e de seus operadores;
aliás, o DOMAIN do SQL também não é um domínio de verdade.  O SQL é
melhor que as alternativas não relacionais (na verdade, sub ou
prerrelacionais), mas ele mesmo não é relacional (seria mais sub ou
quase-relacional) nem segue uma lógica clara.


-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a