title: Database Design, Google Maps, and Address Fields
body: <p>I want to collect the addresses of my users so that I can plot them on a Google Map. I know I need to store the lat/long values of their address, which I can get from Google Map API.</p>
  
  <p><strong>I'm looking for recommendations on how to divide the various address parts and save them to the database.</strong> I commonly see things like this:</p>
  
  <ul>
  <li>Address Line 1</li>
  <li>Address Line 2</li>
  <li>City</li>
  <li>State/Region/Province</li>
  <li>ZIP/Postal Code</li>
  <li>Country</li>
  </ul>
  
  <p>Google breaks down these address components differently, though. See, for example: <a href="http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&amp;sensor=false" rel="noreferrer">http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&amp;sensor=false</a></p>
  
  <p>I'm not sure what parts of Google address components equate to what is commonly seen in web forms (e.g. is <code>administrative_area_level_1</code> always the state/region/province?). I'd like to store the various address components as atomically as possible so that I have the greatest control when displaying the address information later on.</p>
  
  <p>NOTE: I also plan to store the <code>formatted_address</code> as I think that could be useful in some cases.</p>
  
  <p><strong>So, what should I store in my database?</strong></p>