A family of Microsoft relational database management systems designed for ease of use.
Though townships may combine and use only one zipcode, there will always be only one USPS acceptable city for each Zipcode. There are serveral sources for free zipcode databases. The following is one example:
http://federalgovernmentzipcodes.us/
So when you build your tables you will want a table for Countries; States; Cities; Zipcodes and perhaps Counties.
Your Zipcodes table will reference the Cities table
In turn your Cities table will reference your States table
and again, in turn your States table will reference your Countries table.
So when you add a Zipcode to your addressee record, all the other related data will be available for display by using a query.
And though I agree with the gentlemen here about normalization, it may be a considerable necessity to store the individual components of your address in the addressee record: Country, State, City and Zip for the consideration of other countries where the address structure is quite different than that of the U.S..
These guys might have some other suggestions about foreign countries and how to manage them. Best of luck.