Is there an industry standard or best practices for a database of Addresses? I've searched for examples of Address models, and all I've found are very barbaric models that have something like address lines 1-3, postal code, and maybe latitude and longitude float fields. This wouldn't facilitate searching by city.
I've been thinking about the model that Google Maps uses, and initially I thought they used nested tables, so for example a route would belong to a locality, which would belong to a state, which would belong to a country. But then there are countries that don't use localities, for example they might use counties, and Google Maps presents their address components in the API side-by-side instead of nested, so I'm inclined to believe that Google Maps uses a "thing-and-data" model. Is this kind of model the industry standard for storing addresses?
I wasn't able to find any examples of recreating the Google Maps model, but I only found a list of all the types of "thing"'s they currently have thus far: https://developers.google.com/maps/documentation/geocoding/intro?csw=1#Types
If this type of model is recommended by the GIS industry, what is it called and where can I find examples of its implementation in code? If it's not the industry standard, what is the recommended model?