Caro Shander,
A lógica de nosso sistema é bastante complexa e teremos uma série de
programadores trabalhando em cima dele em diversos pontos. Imagina então
quando o código for liberado... muitas pessoas vão trabalhar em cima dele
simultaneamente o que aumenta a possibilidade de erros.
Vamos a um exemplo, quando um pedido é feito, temos que registra-lo em
diversas tabelas:
tb_pedido, tb_pedido_item, tb_pedido_pagamentos
Além de baixar estoque, criar movimentacao do estoque, criar log do usuario,
gerar estatistica fixa entre outras ações.
É muito mais conveniente neste caso ter uma procedure que faça tudo isso com
um simples criar_pedido("dados") do que ter que criar funções em diversas
linguagens e permitir uma margem de erro muito maior.
Não vejo como isto pode engessar o banco.
Em 28 de junho de 2011 17:43, Shander Lyrio <[email protected]>escreveu:
> Em 28/06/2011 16:33, Udlei Nattis escreveu:
> > - Evitar sempre que possível insert, update e selects avulso
> > Isto quer dizer, qualquer ação no banco, principalmente que envolva
> > insert, update ou delete deve ser feita através de procedures. Seria uma
> > aplicação burra onde toda a inteligência do negócio está no banco, um
> > dos principais motivos pela mudança de banco.
>
> A última vez que eu ouvi isto foi quando eu usava Firebird há
> muitos
> anos atrás, antes de começar a usar o postgresql. A desculpa era
> melhorar a performance para evitar que todas as vezes o firebird
> recompilasse as querys e verificasse os possíveis erros nela contidos
> além facilitar a construção de sistemas usando esta "flexibilidade de
> programação" que você comenta. Conheço pessoas que fizeram isto na época
> e que até hoje sofrem porque o firebird não evoluiu muito desde então e
> como a lógica está totalmente atrelada ao banco de dados, qualquer
> pensamento de migração para um outro SGDB é inviável.
>
> Eu não entrei nesta onda na época porque achava isto completamente
> sem
> sentido (e ainda acho) e desde a release 7.4 estou muito feliz com o
> PostgreSql. Insert, update e delete é padrão SQL e deve/deveria
> funcionar em qualquer banco de dados sem alteração. Apenas procedimentos
> muito específicos que envolvam muita lógica ou várias solicitações ao
> banco eu prefiro deixar a cargo do banco de dados através de procedures.
>
> Fora da lista de firebird na época, nunca ouvi na minha vida alguém
> sequer cogitar algo deste tipo para um projeto sério. Não sei se ainda
> hoje é assim.
>
> Abraço,
>
> --
> Shander Lyrio
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
--
Att.
Udlei Nattis
----------------------------
Nixus Soluções Lojas Virtuais
www.nixus.com.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral