Em Ter, 2007-07-24 às 09:45 -0300, Pablo Sánchez escreveu:
> 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.
Não mesmo!
Inicialmente era relacional, Ingres com QUEL; depois, perdeu a pureza
relacional com as extensões OO, foi o Postgres com PostQUEL; aí perdeu
de vez o relacional com o SQL, o PostgreSQL com SQL.
> 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).
Isso se faz com uma tabela pessoa_física que, vem vez de herdar pessoa,
referencia-a com uma chave estrangeira.
Se você quiser os dados consolidados, isso é uma visão.
> 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.
Exato, é o correto.
> 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.
Suspeito que o uso de visões vai resolver tudo — mas de qualquer
maneira é um problema ou do PHP, ou da maneira como você o usa.
Peço aos gurus de programação que dêem sugestões aqui. Se bem que,
pelo que eu saiba, guru de programação quer distância de PHP…
> Assim, teria que ser pesado quão mais lento isso fica no Postgres
> antes de qualquer conclusão. :-/
No PostgreSQL não tem problema.
--
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