Fórum Calculo pra obter saldo em estoque dia a dia #259332

22/11/2004

0

Ola colegas delphianos.
Preciso de uma ajuda, mas no sentido de vivência, experiência. tenho uma estrutura de estoque onde tenho os seguintes atributos:

Estoque(est_data, est_descricao, est_tipo, est_quantidade, est_saldo)

O q eu gostaria de fazer é o seguinte: a cada lançamento q seja feito ele tenha o saldo autal (ou do dia em questão), tenho o atributo est_tipo q define se o lançamento é ´entrada´ ou ´saida´. O saldo viria de um calculo do dia anterior mais (adição ou subtração) do lançamento atual.

Não sei se fui claro.
Se alguém tiver uma idéia ou puder ajudar, agradeço...

[]


Paganato

Paganato

Responder

Posts

22/11/2004

Motta

Duas maneiras claras de resolver a questão.

Triggers mantem uma tabela totalizadora de saldo

Uma view simula a tabela totalizadora

estas duas soluções geram alguma demenada no banco, tempo de atualização, acesso etc e requerem um bd que suporte triggers/views, a solução depende de cada caso, volume de dados , de atualizações etc

Uma terceira solução pode ser uma totalizadora atualizada num processo batch automático num horário em que o sistema esteja com capacidade ociosa

Espero ter ajudado


Responder

Gostei + 0

22/11/2004

Paganato

Caro Motta,
vc poderia dar uma visão mais clara das duas ideias q vc sujeriu.
Estou trabalhando c PostGreSQL e ele suporta triggers/views, porém não consegui enteder suas explicações.
Poderia dar um exemplo ou clarear as ideias?

muito grato.


Responder

Gostei + 0

22/11/2004

Motta

Vc sabe o que são triggers e views ?


Responder

Gostei + 0

22/11/2004

Paganato

Certamente q sei o q são triggers/views. O q não entendi ou melhor não compreendi é a ideia de como fazer o processo.
Se vc puder ser mais claro, fico grato.


Responder

Gostei + 0

22/11/2004

Motta

solução por view , faz-se uma view que agrega o valor do saldo, dependendo do tamanho da tabela esta view pode ficar lenta.

exemplo simplificado

create view total as
select produto,sum(valor) total
group by produto

um select * from total obtem o saldo ...



solução por trigger, crie-se uma tabela agregadora de saldo, nas tabelas que acarretem na mudança de saldo cria-se uma trigger que mantem os valores da agregadora atualizados, nesta solução uma carga inicial é necessária.



não conheço a sintaxe do postgree , assim fica dificil ajudar com exemplos , na sqlmagazine já vi varias artigos que te ajudariam melhor


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar