Em 22 de setembro de 2011 22:20, Vinicius Santos
<vinicius.santos.li...@gmail.com> escreveu:
> Boa noite pessoal,
>
> Preciso de uma idéia/sugestão de como garantir o seguinte:
> Temos um ERP com uma tabela de saídas e outra com uma tabela de
> entradas, e uma terceira com o saldo das duas.
> Por Exemplo: o total da tabela de saídas deu 100 e o total da tabela de
> entradas deu 110, ou seja o saldo é 10, para um determinado produto.
> O saldo 10 é gravado em outra tabela, que grava o saldo e a localizacão
> do produto no estoque. Por ex.: 10 peças no local Depósito 1.
>
> O que eu queria fazer é garantir que a tabela de saldo sempre tenha
> entradas - saídas = saldo.
>
> Atualmente, sem um mecanismo de integridade deste tipo, eu poderia
> colocar a tabela com um saldo de 25. O que resultaria em 110 - 100 = 25.
>
> O único jeito que estou visualizando é por meio de trigger.

É caminho aceitável, porém cuidado com a carga que isso pode gerar
transacionalmente, faça testes de desempenho para não gerar uma
regressão em seu ambiente.

> Não temos o fonte do ERP, e não temos como mudar a modelagem, por
> motivos óbvios.

Cuidado com regras de negócio que podem estar encondidas nas
entrelinhas deste sistema, pois não é difícil gerar uma race-condition
apenas colocando triggers que alteram dados que já são alterados pela
aplicação.

[]s
-- 
Dickson S. Guedes
mail/xmpp: gue...@guedesoft.net - skype: guediz
http://guedesoft.net - http://www.postgresql.org.br
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a