我正在尝试开发一个移动“公告板”样式的应用程序,该应用程序将允许用户发布简单的文本帖子,并根据他们的位置查看其他用户的帖子。存储用户位置数据的最佳技术是什么?是否有一种特定的算法最适合计算与用户最近的帖子?
将为帖子提供ID和文本内容,这些内容将存储在数据库中。当用户发布信息时,它将获取其当前位置数据,纬度和经度将存储在元组中。
用户应该能够查看距他们最近的50条木板帖子,这是我正在努力的部分。
我假设要发布和检索帖子,这将通过REST API完成。
我目前是一名大学生,我所拥有的数据库经验仅限于postgres,但我愿意学习人们认为最适合的技术。在编程语言方面,我已经介绍了很多Java和JavaScript。我不确定算法和数据库如何相互配合,或者不确定是否有更好的方法。
到目前为止,我想到的唯一想法就是通过选择一个x坐标范围然后分析一组y坐标来限制搜索。尽管这将是O(n^2)
的时间复杂度。
我已经做了一些研究,似乎KNN算法可能对此最有效?如何实现与数据库一起使用的算法?我也遇到过R-Trees,但我还在努力寻找如何将它们与数据库一起使用。
另一个选择是具有搜索半径,这样会更有效吗?
如果假设数据库最终有1000万个条目,那么此应用程序的方法是否可扩展?我能想到的一个例子是Tinder,他们如何找到您周围的人?
感谢您的帮助。