Bom dia,

Uma abordagem possível é guardar o saldo em uma tabela (por exemplo, uma
tabela contendo o saldo diário, no início do dia referente) e então somar
(ou subtrair) apenas as movimentações do dia referido. Muitos bancos
utilizam essa abordagem, pois não se perde histórico nem usa todo o
histórico para cálculos de saldo.

Exemplo:
create table saldo_diario
(numero_conta bigint,
dia_referencia date,
valor numeric(18,3)
);

create table movimentacao
(numero_conta bigint,
tipo_movimentacao bigint,  -- supondo ser chave estrangeira, isto é um
exemplo apenas
valor numeric(18,3)
);

cria-se então uma função que calcula o saldo referente ao dia anterior e
grava o valor em saldo_diario. Essa função seria rodada à 00h10 de todo dia,
por exemplo.



Espero que esteja compreensível a idéia que passei, qualquer dúvida (se algo
ficou confuso) é só perguntar.

Atenciosamente,
André.

2009/10/10 Bruno Carneiro <guimaraescarne...@gmail.com>

>
> Então, mas sempre que eu quiser saber o saldo vou ter que fazer esse
> calculo
> desde a data de criação da conta??
>
> E no futuro, não vai ficar pesado depois de muito tempo com muitas
> movimentações?
>
>
> Tarcísio Sassara wrote:
> >
> > Você não pode recalcular um campo com o saldo porque você perderá o
> > histórico das movimentações.
> >
> > Você deve criar uma tabela que armazena as movimentações e inserir
> > todas estas, seja positivas ou negativas.
> > Fica algo como:
> > cliente  valor      data
> > 1         100.00   2009-09-09
> > 1         -50.00    2009-09-09
> >
> > Quando você fizer quiser pegar o saldo, você faz um soma(SUM) na coluna
> > valor.
> >
> > select cliente, sum(valor)
> > from movimentacoes
> > where cliente = 1
> > group by 1
> >
> > Então é só adaptar esta idéia ao seu modelo.
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/D%C3%BAvida-de-modelagem-de-contas-de-bancos-tp25834706p25834956.html
> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
André de Camargo Fernandes
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a