GARANTIR DESCONTO

Fórum Pegar o dados do registro anterior para comparar com o registro atual #535685

27/10/2015

0

Galera, estou precisado de ajuda para fazer um auditoria em uma tabela.
Firebird 2.5

tenho a seguinte os seguinte campos:
[img]http://arquivo.devmedia.com.br/forum/imagem/267272-20151027-090959.jpg[/img]

estoq_id,
prod_id,
estoq_anterior,
estoq_entrada,
estoq_saida,
estoq_atual

preciso fazer um select ou procedure para percorrer esses registro e analisar se o estoq_atual do registro anterior é igual com o estoq_atual do registro em foco, pois a tabela estoque ele pega o estoque estoq_atual do registro antigo para poder realizar o próximo movimento, ex:
estoq_atual = (estoq_anterior(estoque atual do registro anterior "estoq_id") + estoq_entrada) - estoq_saida
Sidney Abreu

Sidney Abreu

Responder

Posts

27/10/2015

Marcos P

Embora a lógica de leitura sequencial de registros não seja algo muito recomendável em qualquer SGBDr, o ideal seria você fazer uma única query e tratar isso do lado de uma aplicação qualquer, para fazer esse controle você irá necessitar de um CURSOR no Firebird.

A ideia é simples : crie uma query que selecione todos os registros que você precisa ( devidamente ordenados ) e declare o cursor com ela. Depois, através de um loop, varra sequencialmente esses registros e implemente a lógica que você precisa.

Segue a sintaxe básica de criação de um cursor no firebird : Criando Cursor no Firebird.

Com uma pesquisa se 5 minutos no Google você acha muitos outros exemplos.

Ok ?!?
Responder

Gostei + 0

27/10/2015

Sidney Abreu

Amigo, o que vc me aconselha para ter um histórico das movimentações do estoque? Sou iniciante
Responder

Gostei + 0

27/10/2015

Marcos P

Não entendi sua pergunta... poderia explicar melhor ?
Responder

Gostei + 0

27/10/2015

Sidney Abreu

Me refiro a estrutura, se a estrutura que eu criei esta correta
Responder

Gostei + 0

27/10/2015

Marcos P

Não conheço sua necessidade, os detalhes de sua estrutura e da lógica que vai ser implementada sobre essa estrutura.

Então, fica difícil de opinar !

A única dica que darei a você, apenas como um parâmetro para sua análise, é a de considerar a evolução do tamanho dessa tabela de movimentação ao longo do tempo.

Quantas operações diárias são realizadas atualmente ?

Quais as perspectivas de evolução do número de operações diárias ?

Qual o tamanho estimado para essa tabela no decorrer do tempo ?

Qual a necessidade de armazenar essas informações ao longo do tempo ?

Existem requisitos legais a serem atendidos que justifiquem armazenar esses dados por determinado tempo ou sua necessidade é "apenas" funcional ?

Qual a estratégia ( ou estratégias ) de movimentação desses registros a medida que o tempo for passando ?

Tudo sempre parece simples no começo, mas, avaliando as coisas em detalhes... surgem as questões relevantes !
Responder

Gostei + 0

27/10/2015

Sidney Abreu

Quantas operações diárias são realizadas atualmente ?
R= 200 em média

Quais as perspectivas de evolução do número de operações diárias ?
R= 50%
Qual o tamanho estimado para essa tabela no decorrer do tempo ?
R= cerca de 500.000,00 registros
Qual a necessidade de armazenar essas informações ao longo do tempo ?
R= auditoria do estoque
Existem requisitos legais a serem atendidos que justifiquem armazenar esses dados por determinado tempo ou sua necessidade é "apenas" funcional ?
R= sim, não se é apenas funcional. Mas uma forma de ter o registro para comparar os dados
Qual a estratégia ( ou estratégias ) de movimentação desses registros a medida que o tempo for passando ?
Não pensei nisso
Responder

Gostei + 0

27/10/2015

Marcos P

A definição da estrutura é tua e se você consegue implementá-la para atender teus requisitos, vá em frete com ela !

O volume de dados e a evolução dos mesmos ( embora você não definido em quanto tempo isso será alcançado ), não parece nada muito crítico !

Fique atento, também, a arquitetura de chaves e índices dessas tabelas, bem como a performance do Firebird quanto a concorrência de acesso a esses dados.

Não tenha muitas expectativas no sentido de que existe uma solução "ideal" para as coisas... a melhor solução é sempre aquela que você consegue entender, explicar e aplicar !

Boa sorte !
Responder

Gostei + 0

27/10/2015

Sidney Abreu

O que devo estudar para melhor isso?
Responder

Gostei + 0

27/10/2015

Marcos P

Engenharia de software...
Banco de dados...
Modelagem de negócios...
Requisitos legais...
Programação...

Enfim... tudo !

Não se preocupe.. se você tem essa preocupação de melhorar, a prática vai lhe indicar o caminho !
Responder

Gostei + 0

27/10/2015

Sidney Abreu

obrigado amigo
Responder

Gostei + 0

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

Aceitar