我有一个表,其中包含世界上所有地理位置及其关系的位置。
这是一个显示层次结构的示例。您将看到数据实际上存储为所有三个
数据显然也永远不会改变。以下是英国布莱顿地点的直系祖先的示例,该地点的 woeid 为 13911。
Table: geoplanet_places
(Has 5.6million rows)
Large Image: http://chrisacky.com/ancestors.jpg http://chrisacky.com/ancestors.jpg
I then have another table called entities
. This table stores my items which I would like to map to a geographical location. I store some basic information but most important I store the woeid
which is a foreign key from geoplanet_places
.
最终将entities
表将包含数千个实体。我想要一种能够返回包含实体的所有节点的完整树的方法。
我计划创建一些东西来促进根据实体的地理位置过滤和搜索实体,并能够发现在该特定节点上可以找到多少实体。
因此,如果我的模型中只有一个实体entities
表,我可能有这样的东西
'地球 (1)
英国 (1)
英格兰 (1)
东萨塞克斯 (1)
布莱顿霍夫市 (1)
布莱顿 (1)`
然后假设我有另一个位于德文郡的实体,那么它会显示如下内容:
地球 (2)
英国 (2)
英格兰 (2)
德文郡 (1)
东萨塞克斯 (1)
... ETC
表示每个地理位置“内部”有多少实体的(计数)不需要是实时的。我可以忍受每小时生成我的对象并缓存它。
目的是能够创建一个界面,该界面可能一开始仅显示拥有实体的国家。
So like
Argentina (1021)
, Chile (291)
, ...
, United States (32,103)
, United Kingdom (12,338)
然后,用户将单击一个位置,例如英国,然后将获得所有直接子节点,这些子节点是英国的后代并且其中有一个实体。
如果英国有 32 个县,但当您向下钻取时最终只有 23 个县存储了实体,那么我不想显示其他 9 个县。它只是位置。
This site aptly demonstrates the functionality that I wish to achieve:
http://www.homeaway.com/vacation-rentals/europe/r5 http://www.homeaway.com/vacation-rentals/europe/r5
您建议我如何管理这样的数据结构?
我正在使用的东西。
我计划尽可能快地进行深入研究。我想创建一个无缝搜索的 AJAX 界面。
我也有兴趣知道您建议在哪些列上建立索引。