Geo entities are: Continent, Country, Province, City, Neighborhood. By default Continent, Country and City will always exist. Province is optional as not all countries have state/province. And neighborhood data takes time to find, so it is a load as the data comes in.
Other entity: Zipcode (mapping to City(required) and Neighborhood (optional)). Latitude / Longitude (mapping to city, Neighborhood, Local business) Company, Brand, Local business (company maps to city via Headquarters field and corporate locations field. Brand maps through local business. If local store exists in city then brand exists in the city. And local store maps to city as required and neighborhood optional. Also need to relate company, brand and local stores to country and a global level too.
All these data will be lookups. So what is the best way to make the schema for this so 1) I can capture all relationships, 2) Joins are all small as there are tons of other tables and live feeds data - that means I need to keep relationships denormialized? 3) Ensure data updates are easy to insert new data and if wrong relationships were created it is easy to change it?
So should each entity gets its own tale or throw them all into 1-2 tables? Each of these entities except lat/longitue will be search-able on site and are part of filter metricsfor analytics.
EDIT: I must add this is a "Geographic" based social network, connecting people with their local cities, hence heavy emphasis on connecting all system objects with location at different levels.