1. A method comprising: storing in a database one or more tables including records with a plurality of fields; retrieving the records from the database and storing data from the records in a cache in order to perform a calculation, the records being rearranged so that each record has an identifier and at least for one record multiple versions of that record are stored in the cache, the different versions of the record including one or more variations in field values, wherein the records are stored in the database with groups of fields organized into at least two field groups with at least two fields each; and selectively retrieving from the database and storing in the cache one or more, but not all, field groups on an as-needed basis to perform a calculation.