Place Domain
The Place domain is undergoing significant refactoring.
@a user is the developer lead for this initiative.
The main objectives are
To increase the accuracy of Place data
To introduce integrations with Google Place to resolve well formed addresses and geo coordinate data
To improve the performance of the system when filtering products by different elements of place
To capture timezone information for every place and by inference for every product to improve features such as cancellations and cut-offs
There are a number of new Place tables in the system with a suffix of “new”. These will eventually replace the existing tables once all code and migrations are complete
Products need to be related to a Place in order that the system, Partners an Consumers can find and organise Products by City, Country and more.
Cities are related to the countries they exist in as well as to regions which can be used to cover wither global regions such as EMEA, APAC and smaller regions such as national parks, mountain ranges etc.
Database Tables
The following tables are defined in the entity domain:
Place | Details every City, Region, Country and Global region for which we have produced will exist in this table. |
PlaceType | Details all of the types Google associates with different elements within the Place domain. This table includes more than 125 rows but among the important types are:
Many of the other types provide insight to the nature of the location such as:
|
PlaceTypeAssociation | Details the associations between a given Place and its Types |
PlaceAlias | Many sources and product suppliers use place names that do not map perfectly to our choice of place manes. The alias table is used when mapping source data to ensure that our data remains consistent no matter the source. |
PlaceAssociation | Used to map one place to another. ie to map a city to the countries and regions that contain it. |
GeoCoordinate | Whenever possible we want to map a product to the exact point on a map. We do this in a number of ways, in some cases a supplier may provide a latitude and longitude for the place whist in others they may provide a postal address. We use services provided by Google maps to enhance this information and then link the resulting record to the Products. This also brings enhanced search capabilities to the API as we are able to find all the coordinated within a given radius of a point on the globe or within a bounding rectangle and then return all the product within that area. |
GeoHash | This table is to be deprecated. |