1. A method for storing addresses within a database, comprising: capturing an address for an entity, the address having an address usage type that defines the intended use of the address; determining address elements of the address using an address template based upon the address usage type; determining whether the address is already stored within the database; if the address is not already stored within the database: creating, within an addresses table, an address entry having a new unique address identification number; storing each of the address elements within an address element table of the database in association with the new unique address identification number; and creating an association entry within an address association table to associate the new unique address identification number with the entity and to store the address usage type; if the address is already stored within the database: determining an existing unique address identification number for the address within the database; and creating an association entry within the address association table to associate the existing unique address identification number with an entity and to store the address usage type.