2011-03-20 80 views
0

我正在运行一个交友网站,或者更好地说,尝试。就国家的覆盖范围而言,我希望尽可能通用为
将网站拆分为城市/国家的最佳方式?

因为它是一个地方约会导向的网站,我要跟踪城市
的等等,所以我遇到了一些问题:

  1. 我需要有对城市的信息,人们可以从
    加入(一个国家我不知道,我真的不能决定一城
    或任何东西)

  2. 当人们来自不同国家的加入,他们希望看到PE ople
    附近。你会如何处理这种问题?

这可能看起来像2个轻松得分,但他们真的让我有些麻烦,这些
天。 **试图接近他们的数据库相关的问题**

我绕圈子SE并觉得这是最好的点要问,没有任何其他
SE网站。

非常感谢您

+0

您应该尝试使用坐标查找国家和城市的列表。然后你可以编写一个数据库函数来计算某个国家的城市之间的距离。 也许谷歌地图在它的API中有这个,我不确定。你好,Danke,Hallo Jens, – Jens 2011-03-20 08:35:26

+0

!把它们全部放在同一个数据库中怎么办?是否有意义?或者我应该分裂国家? – Herr 2011-03-20 08:44:32

+0

你可以把所有的城市放在一张桌子上。你不知道你会有多少个国家,所以很难为每个国家制作一张桌子(或者我不理解你的问题?) – Jens 2011-03-20 08:57:52

回答

2

在美国一个城市的全名是{COUNTRY_NAME,STATE_NAME,CITY_NAME}。我认为,假设在全球范围内,我称之为state_name并不是唯一的。我很容易想象一个拉丁美洲国家的某个地区被命名为“内华达州”或“科罗拉多州”。

您还有拼写问题。一位住在德国的美国人可能会说她住在德国北莱茵 - 威斯特伐利亚州的科隆。住在那里的德国人会称之为“科隆”。

“附近”是一个更棘手的问题。我曾经住在一个大城市。在州际公路上开车一个小时来取我的约会并不罕见。我认为这是“附近”。现在我住在一个小城市。现在30分钟似乎是一个很长的驱动器,但它可能只有15或20英里,而不是65或70.

如果你住在边境城镇,15英里可能在不同的国家。也许两个不​​同的国家。

我认为您最好的选择是使用地理定位API或服务来获取新城市插入时的经纬度。给定两点的距离计算很简单,但会导致查询效果不佳,除非使用边界框。 (你不想计算到德克萨斯州每个城市的距离,以找到“附近”韦科的人)。

1

获取所有城市的纬度/经度。不要担心确切的距离。

与excel一起玩,找到给定距离(10英里,25英里,50英里)的纬度和/或经度(Δlat或Δlong)的最大变化,然后当您搜索其他时,只需在数据库中搜索(Firstuser's Longitude +/-Δlong)和(Firstuser'sLitude +/-Δlong)之内。

我不认为人们会介意10miles和10 * 2^0.5英里之间的区别。