[firebase-br] Dúvida com controle de estoque

Marcelo - MK Softwares marcelo em mksoftwares.com.br
Qui Jul 27 23:58:30 -03 2017


Boa noite.

 

Estou com uma duvida com relação a normalização do banco de dados para com o
controle de estoque.

Vou apresentar o meu cenário atual:

- Versão do banco 2.5;

- Possuo muito clientes que possuem computadores com pouco poder de
processamento (várias pequenas empresas com apenas um computador);

- O controle de estoque esta sendo realizado mediante atualização do saldo
do estoque do produto no campo “EstoqueAtual”, onde quando se ocorre uma
entrada ou saída o software de gestão faz a leitura do registro do produto,
pega o saldo atual no estoque e faz a atualização do mesmo (entrada ou
saída). Após isso é feito um update no registro com o valor do estoque
atualizado.

 

Baseado nessas informações observei que não é correto (pelo menos creio eu),
então estou pensado de criar uma tabela onde possa armazenar as
movimentações. Desse modo apenas iria fazer um insert com os valores do
produto que se esta movimentando. Onde um campo teria uma flag: D ou C
(débito ou credito), e através de uma trigger disparar uma atualização no
campo “EstoqueAtual” da tabela de produtos, retornando para a mesma o saldo
em estoque do produto.

 

Bom até ai esta muito bonito e legal (pelo menos no meu pensamento), mas a
dúvida que não quer calar: 

- Fazendo desse modo não ficará lento, para computares menos favorecidos de
processador, quando o banco de dados estiver enorme, digo vários registros
nessa tabela?

- Na minha opinião essa trigger será mais ou menos assim: Executará um
SELECT SUM para todas as flags “D” e outro SELECT SUM para todas as flags
“C”, para o produto movimentado. De posse dos dois valores, executar um
update na tabela de produtos com a diferença dos dois valores.

- Caso este modo esteja errado, qual a sugestão que me aponta para este
problema?

 

Desde já agradeço a todos.

 




Mais detalhes sobre a lista de discussão lista