I have a table that contains the location of all the geographic locations in the world and their relationships.
Here is an example showing a hierarchy. You will see that the data is actually stored as all three
- Enumerated path
- Contact List
- Nested set
Data, obviously, never changes. The following is an example of the direct ancestors of Brighton's location in England, which has a density of 13911.
Table: geoplanet_places (has 5.6 million rows)
Large Image: http://tinyurl.com/68q4ndx
Then I have another table called entities . This table stores my objects, which I would like to compare with the geographical location. I store some basic information, but most importantly I store woeid , which is the foreign key from geoplanet_places . 
Ultimately, the entities table will contain several thousand objects. And I would like to be able to return a complete tree of all nodes that contain objects.
I plan to create something that will make it easier to filter and search for objects based on their geographic location and be able to find out how many objects can be found on this particular node.
So, if I have only one entity in my entities table, I might have something like this
`Earth (1)
United Kingdom (1)
England (1)
East Sussex (1)
Brighton and Hove City (1)
Brighton (1) `
Lets then say that I have another entity that is in Devon, then it will show something like:
Earth (2)
United Kingom (2)
England (2)
Devon (1)
East Sussex (1) ... etc.
(Graphs) that will say how many objects βinsideβ each geographic location do not need to live. I can live by creating my object every hour and caching it.
The goal is to create an interface that can start by showing only countries that have entities.
Like it so much
Argentina (1021) , Chile (291) , ... , United States (32,103) , United Kingdom (12,338)
The user then clicks on a location such as United Kindom, and then all immediate child nodes that are descendants of the United Kingdom and have an entity in them will be provided.
If there are 32 environments in United Kindgdom, but only 23 of them, after all, when you expand, have entities stored in them, then I do not want to display the other 9. These are only locations.
This site accurately demonstrates the functionality I want to achieve: http://www.homeaway.com/vacation-rentals/europe/r5 
How do you recommend me to manage such a data structure?
Things I use.
I plan for the cuts to be as quick as possible. I want to create an AJAX interface that will seem useless to search.
I would also be interested to know in which columns you would recommend indexing.