2009/10/10 Bruno Carneiro <[email protected]>:
>
> Então, minha única dúvida ai seria se no futuro, o usuário modificasse
> movimentações do passado, neste caso teria que re-calcular o saldo daquele
> dia.

Não entendi o problema de um usuário alterar uma movimentação. Ele
pode fazer isso?

Continuando...

Não acredito que vai ser muito ruim como eu disse pois você não vai
precisar fazer o SUM com todos os
registros de movimentações. Apenas de um cliente de cada vez e:
Um cliente não terá tantas movimentações.

Mas pensando em performance,
Indo pelo seu primeiro e-mail, a alternativa de ter uma coluna com o
saldo atual e depois ir somando e subtraindo com cada movimentação
funciona.
De qualquer forma você precisa de uma tabela movimentações para ter o histórico.
Então, basta ter uma trigger que para cada alteracão na tabela
movimentações, atualize o saldo atual.

Abraço

2009/10/10 Bruno Carneiro <[email protected]>:
>
> Então, minha única dúvida ai seria se no futuro, o usuário modificasse
> movimentações do passado, neste caso teria que re-calcular o saldo daquele
> dia.
>
> E se o saldo desse dia muda, todos os saldos dos dias posteriores teriam que
> mudar também...
>
> Opções
>
> 1- Quando modificar o saldo de um dia, re-calcular os dias posteriores
>
> ou
>
> 2- Na tabela de saldo_diário, armazenar somente o saldo DAQUELE DIA, quando
> quiser saber o saldo, fazer um sum de todos os dias até aquele.
>
> Creio que a primeira idéia seja melhor, já que não será muito comum
> modificar saldos de dias anteriores... afinal uma vez passada a data, não
> tem como mais fazer movimentação nela ( teoricamente ), a não ser que tenha
> havido algum engano que precise ser corrigido.
>
>
> Andre Fernandes-2 wrote:
>>
>> 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 <[email protected]>
>>
>>
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/D%C3%BAvida-de-modelagem-de-contas-de-bancos-tp25834706p25835162.html
> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Tarcisio F. Sassara
Nzb ryn. Ibpê fnor dhrz? Fvz é ryn! Gnzvelf.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a