2016-06-07 14:03 GMT-03:00 Michel Luiz Milezzi <michelmile...@gmail.com>:
>> Não consigo imaginar uma maneira sistemática e (ou) automática.
>> Dependendo das alterações, você pode criar visões que preservem o
>> esquema lógico anterior, mas é trabalho braçal.
>
> Também não consigo ver uma forma de colocar isso na prática. Talvez seja o
> caso de recorrer a um banco de dados semi-estruturado, não relacional.

Isso seria arrancar o nariz porque achou a cara feia.  Para começo, o
SQL também não é exatamente relacional, e isso (via dificuldades de
atualização de visões e outros probleminhas decorrentes de violações
do modelo relacional) é justamente uma das coisas que atrapalha esse
tipo de trabalho.

Depois, um ‘semi-estruturado’ não existe; o que existe é uma estrutura
não tão bem definida quanto pode ser em SQL.  E quanto mais mal
definida, maior a dificuldade de lidar com versões e suas
conseqüências.  No caso, ‘semi-estruturar’ é varrer a sujeira para
debaixo do tapete, e esperar que não tenha ninguém alérgico na sala…


> Mas, se você utilizar um ORM para abstrair as consultas no banco de dados é
> possível manter as entidades mapeadas de forma "diferente" em cada
> aplicação. Neste cenário somente seria possível adicionar objetos novos no
> banco de dados. Daria problema, por exemplo, se uma coluna fosse removida e
> a mesma continuasse no mapeamento da entidade em questão em uma das versões
> da sua aplicação.

Isso nada tem a ver com ORM.  ORM no caso vai é acrescentar
complexidade numa abordagem muito simples, e geralmente insuficiente,
que é de somente criar novos objetos.


> De qualquer forma não recomendo estes cenários, o ideal é você tratar isto a
> nível de aplicação. Por exemplo, é possível criar um ponto comum de acesso
> ao banco para as duas aplicações através de um servidor REST. Este servidor
> poderia tratar as diferenças entre as aplicações pela versão da sua api de
> comunicação.

Como mudam os nomes!  Antes do Rest, chamávamos isso de três camadas.
E implementávamos na própria base de dados, com as PLs.  Não que isso
anule o Rest; mas Rest é para outros casos, e incidentalmente pode
ajudar nisso também.  Em outras palavras, a questão aqui não é ser
Rest, é isolar a apresentação (servidor de aplicações, no caso) da
lógica (PLs, Rest, o que for).


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

Reply via email to