Originalmente, o Postgres era um banco OO, que depois veio a ter suporte
para o SQL, ou seja, foi a inserção do modelo relacional em um modelo OO.

De toda a forma, o que fiz foi o seguinte:

1 - Contrução de uma classe em PHP a partir de uma classe abstrata chamada
Persist. Esta classe automatiza toda a construção de SQLs para SIUD (select,
insert, update, delete - quem usar a terminologia crud para cima de mim
apanha!).

2 - Contrução de uma outra classe PHP a partir da nova classe PHP. Então,
não há porque eu recriar toda uma tabela se eu já tenho uma classe original.
Ex: Persist <- Pessoa <- PessoaFisica. O que faço é PessoaFisica (campos)
inherits(Pessoa).

Assim, o que insiro em PessoaFisica já é Pessoa automaticamente.

Para outros bancos, o que tive que fazer foi que, crio uma tabela chamada
Pessoa, e outra chamada PessoaFisica apenas com os atributos que são
distintos de Pessoa, e coloco a chave primária de PessoaFisica como sendo
uma chave estrangeira que referencia a primária de Pessoa, já que outros
bancos não tem essa implementação OO. Imagino que a solução que vc está
sugerindo seria algo como esta. Agora vem o grande problema que é na
implementação fora do servidor...

A performance nesse segundo caso é muito mais baixa na linguagem (PHP), pois
serão necessárias n aberturas (n = número de heranças existentes das
classes) de requisições ao servidor para ir preenchendo os dados, além da
classe PessoaFisica ter que criar uma classe Pessoa para fazê-la carregar os
dados e importá-los/copiá-los para seus atributos. Se houverem n classes das
quais eu fui herdando, o espaço ocupado na memória vai também subindo
exponencialmente. Utilizando heranças de tabelas, fica apenas uma
requisição, à tabela PessoaFisica, pois ela já terá todos os atributos
necessários.

Assim, teria que ser pesado quão mais lento isso fica no Postgres antes de
qualquer conclusão. :-/

Em 24/07/07, Leandro Guimarães Faria Corcete DUTRA <[EMAIL PROTECTED]>
escreveu:

Em Ter, 2007-07-24 às 09:00 -0300, Pablo Sánchez escreveu:
> Não entendi de onde vc tirou isso.

        Realmente não dei referências.  Mas é a crítica que o Date, o
Darwen e
outros fazem à inserção de conceitos OO no modelo relacional, o que
efetivamente limita o modelo relacional a ponto de torná-lo de fato não
relacional.


> Poderia me explicar melhor?

        Tudo o que se pode fazer com herança se faz com normalização e
restrições de integridade, com melhor desempenho e mais flexibilidade.

        Para exemplificar, seria legal ver que uso você faz de herança
para
poder apontar alternativas específicas.

--
Leandro Guimarães Faria Corcete DUTRA  <[EMAIL PROTECTED]>
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat     +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial
e/ou privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a
receber esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela
contidas ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu
esta mensagem por engano, por favor avise imediatamente o remetente,
respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged
information. If you are not the addressee or authorized to receive this for
the addressee, you must not use, copy, disclose or take any action based on
this message or any information herein. If you have received this message in
error, please advise the sender immediately by reply e-mail and delete this
message. Thank you for your cooperation.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

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

Responder a