Location Module

Locations are cities, countries, starting locations, finishing locations, continents and anything geographic. The locations are really a hierarchy of locations.

Specifically the following should be stored:

  • Continents (the highest level)
  • Countries used for addresses.
  • Destinations used for trips.
  • Starting and finishing locations for products.
  • Latitude and Longitude for maps integration.
  • Cities used for locations.
  • ISO Country Codes (2 character and 3 character)
  • Nationalities – a comma separated list.
  • UTC offset for locations to help with time zone aware storage.

There is the opportunity to integrate with Google Maps or open streetview, but this is more eye candy than anything actually useful. The Google Maps could be used to automate the entry of latitude and longitude.

The hierarchy is:

  • Continent
  • Country
  • City
  • Location

A Destination can belong to more than one continent. A Country can belong to more than one destination. A Country can belong to more than one continent. A City can belong to only one country, and a location can belong to only one city.

The destination is a tag for a collection of countries. This is used separately for trips as well as tagging countries. These could be called tourist regions.