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
