我正在尝试构建一个iOS应用程序,它接受用户的位置,然后通过REST api查询后端为他/她附近的其他用户。我做了一些谷歌搜索,我的选择(根据我的经验)似乎是。
我更倾向于第一选择,因为谷歌应用引擎似乎不是那么开放,并且在开始时有一个陡峭的学习曲线。
现在在mysql数据库上进行位置查询似乎是令人生畏的。我的直觉是必须有更好的东西。我不想重新发明轮子!
任何人都可以请点亮
到目前为止,我一直是iOS开发人员,在构建网络应用程序方面经验很少。我们非常感谢任何建议。
如果有人问过类似的问题,请随时指出。
提前致谢。 - samyzee!
答案 0 :(得分:2)
我担心你会问太多和一般性问题以获得有用的答案。我会试试:
如果你想做非常简单的地理空间的东西,试着坚持使用边界框。适合这个问题的最简单的技术非常值得探索。但是,您很快就会发现需要更多......
如果您想使用geodjango,请使用PostGIS数据库并忘记非关系数据库。你将开发一个后端,它对非webapp程序员有一个陡峭的学习曲线。从geodjango教程开始,逐步开发一个您熟悉的技术堆栈(使用geodjango可以轻松完成REST服务)。
选择非关系数据库的原因是特定于用例(您希望存储文档,图形,或者您不希望使用预定义的模式)或者需要进行扩展(同时读取和写入很多内容)大量数据,因此使用多个节点等)。如果你是一个非网络应用程序程序员,请雇用一个有经验的人(可以做一些'软件架构')来帮助你走上这条道路。
- 位置数据是否应存储在单独的表或同一表中 作为其他用户数据?
- 我应该使用时间戳来使旧的位置更新失效吗? 有更好的方法 那个?(例如数据库可以 本身peridically删除位置 更新)。
询问做过任何数据库设计的人来帮助您。到目前为止的问题描述中,您可以使用两个表:User(id, name)
表和UserLocation(id, timestamp, user_id, xCoordinate, yCoordinate)
表。为每个为用户获取的样本添加UserLocation
行。您可以稍后设计(和更改)解释UserLocation表的规则,例如:
从你的提问线来看,你觉得自己有点偏离联盟。但是,如果您坚持使用简单的技术并以务实的方式工作,那么您可以使您的服务正常运行。为什么不从mysql + php和边界查询开始?一旦你完成其他一切工作,就把它交换成别的东西吗?