<p>Are there any good references for best practices for storing postal addresses in an RDBMS?  It seems there are lots of tradeoffs that can be made and lots of pros and cons to each to be evaluated -- surely this has been done time and time again?  Maybe someone has at least written done some lessons learned somewhere?</p>

<p>Examples of the tradeoffs I am talking about are storing the zipcode as an integer vs a char field, should house number be stored as a separate field or part of address line 1, should suite/apartment/etc numbers be normalized or just stored as a chunk of text in address line 2, how do you handle zip +4 (separate fields or one big field, integer vs text)? etc. </p>

<p>I'm primarily concerned with U.S. addresses at this point but I imagine there are some best practices in regards to preparing yourself for the eventuality of going global as well (e.g. naming fields appropriately like region instead of state or postal code instead of zip code, etc.</p>

You should certainly consult "
Is this a good way to model address information in a relational database
", but your question is not a direct duplicate of that.
There are surely a lot of pre-existing answers (check out the example data models at
DatabaseAnswers
, for example).  Many of the pre-existing answers are defective under some circumstances (not picking on DB Answers at all).
One major issue to consider is the scope of the addresses.  If your database must deal with international addresses, you have to be more flexible than if you only have to deal with addresses in one country.
In my view, it is
often
(which does not mean
always
) sensible to both record the 'address label image' of the address and separately analyze the content.  This allows you to deal with differences between the placement of postal codes, for example, between different countries.  Sure, you can write an analyzer and a formatter that handle the eccentricities of different countries (for instance, US addresses have 2 or 3 lines; by contrast, British addresses can have considerably more; one address I write to periodically has 9 lines).  But it can be easier to have the humans do the analysis and formatting and let the DBMS just store the data.