Here's the 'little input' that you requested: don't do it.
Acting on the assumption that PostgreSQL handles stored procedures, write one that will always calculate the running total. If you're concerned about performance, you're just going to have to make sure that you have a properly designed and indexed database.
The problem with storing a precomputed total in the database is that you're violating the rules of normalization. The running total is actually a duplicate of other information stored within the database. One of the points behind normalization is that each piece of information should be stored in one and only one place.
Sometimes you'll see databases that do have such totals, but they are usually data warehouses where the rules of normalization do not apply. However, that's not what I see you describing. Any serious financial application is heavily database dependant and the database quickly becomes complex. By keeping a running total, you must ensure that all things in the database that could possibly affect it are accounted for when adding, updating, and deleting data. Miss just one of those and you're running total is wrong. Further, coming back to the application several months later virtually guarantees that you're going to forget the places where the database is not normalized. Or another programmer who maintains it won't know it's not normalized.
If you were just creating something like an address book or a recipe database, this might not be a big deal. However, you're working with financial data and people make important decisions based upon things like this. Don't take chances with people's money.
Cheers,
Ovid
Vote for paco!
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.
|