2015-04-28 11:34 GMT-03:00 Irineu <[email protected]>:
>
> Estou modelando o banco de dados(Postgres off course)  de uma aplicação em
> java web para loja.

/Of [ov] course/.  /Off [of] course/ significa fora da corrida, ou algo assim.


> Fiz uns testes criando types para os objetos como segue exemplo abaixo.

Ιsso te traz alguma vantagem para a aplicação?


> CREATE TYPE cliente AS
>    (nome character varying(250),
>     cnpj_cpf character varying(20),
>     email character varying(250);
>
> CREATE TABLE tb_cliente
> (id SERIAL PRIMARY KEY NOT NULL,
>  cliente CLIENTE);

Faltou chave.  Lembre-se que a chave artificial (id) não substitui a
natural, embora possa, em algumas situações, complementá-la, uma vez
que não garante a unicidade.

No teu modelo, eu diria que chaves candidatas seriam (nome, cnpj_cpf),
(nome, email), ou mesmo (nome, cnpj_cpf, email).


> A estimativa de crescimento do banco é atingir no máximo 20GB.

Normal.


> Dentro desse cenário posso ter problemas de desempenho

Dificilmente.


> ou seria melhor modelar da forma tradicional ?

A menos que você tenha ganhos na aplicação, ou reusará ‘cliente’
noutras relações (tabelas), seria melhor modelar sem o TYPE porque ele
acaba complicando o modelo, tornando-o mais opaco principalmente para
quem não participou da modelagem.  Mesmo você, se a aplicação alcançar
alguma estabilidade a ponto de não precisares te preocupar dela por
uns meses, verá depois de um ano ou algo assim que não ficou tão
transparente quanto poderia.

Lembre-se que se continua falando do PostgreSQL como
‘objeto-relacional’ mais por uma questão de publicidade; o que no
PostgreSQL (ou em qualquer SGBD) realmente facilita orientação a
objeto é a riqueza de tipos e a conformidade ao modelo relacional, não
exatamente TYPEs ou herança.


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