[firebase-br] Dúvida sobre transações

Douglas nix em nixespecializada.com.br
Qua Out 11 12:40:29 -03 2006


Humm.... posso até estar falando bobagem, mas e se você armazenasse as baixas 
de estoque para serem processadas depois ao inves de fazer tudo direto na 
tabela? 

Explicando melhor, crie um tabela de baixas e em um determinado período do dia 
aplica os dados dela na tabela principal de estoque, então limpa as baixas 
processadas. Se vc quiser saber a qualquer hora quantos produtos estão no seu 
estoque faz uma consulta que leva em conta as baixas ainda não processadas.

Em Quarta 11 Outubro 2006 11:59, Renan Cruz de Almeida escreveu:
> Penso que não vai dar deadlock, mas pode acontecer o seguinte, acaso o
> sistema não tenha nenhum controle a mais, tomando como exemplo um
> produto qualquer "X" :
>
> caixa A : abre transação;
> caixa B : abre transação;
>
> caixa A : lê estoque X = 100;
> caixa B : lê estoque X = 100;
>
> caixa A : faz estoque final X = 100-30 = 70;
> caixa B : faz estoque final X = 100-40 = 60;
>
> OBS : na realidade o estoque final de X deverá ser 100-(30+40) = 30, ao
> término das transações A e B.
>
> caixa A : finaliza a transação e atualiza estoque final X = 70;
> caixa B : finaliza a transação e atualiza estoque final X = 60;
>
> Isso é uma anomalia de alteração, onde os SGBD's não têm como impedir,
> pois a "defesa" contra isto reside nas regras do negócio que está sendo
> modelado e na forma como o sistema é implementado.
>
> []'s
> Renan
>
> >É o seguinte: Tenho um sistema de vendas que a cada venda abate o estoque.
> > Qual a garantia que eu tenho (mesmo com transações pequenas e rápidas) se
> > em dois caixas tentarem alterar o estoque de um mesmo produto ao mesmo
> > tempo não vai dar deadlock. Uso Firebird + Zeos.
> > ______________________________________________
> >FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br Para
> > consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br Para
> consultar mensagens antigas: http://firebase.com.br/pesquisa

-- 
Nix Expecializada
Soluções em Interconectividade, Servidores e Segurança de Rede com Software 
Livre.
Rua São José, 1.182 – sala 6.
Centro – Piracicaba/SP – 13400-330
Contatos:(19)3434-3526          E-mail: nix em nixespecializada.com.br
         (19)9183-4244 Douglas  E-mail: douglas em nixespecializada.com.br
         (19)9183-4238 Judson   E-mail: judson em nixespecializada.com.br




Mais detalhes sobre a lista de discussão lista