HL7 V3 (including ISO 21090) has a good, flexible data model for addresses. Anyone can have zero or more addresses each of which has a use code (home, work, postal, etc). Each address has zero or more parts each of which has a type (line, street, city, postal code, direction, suffix, etc).