免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 17965 | 回复: 28

微信/陌陌 附近的人 是怎么样实现的? [复制链接]

论坛徽章:
0
发表于 2014-09-21 15:13 |显示全部楼层
数据库菜鸟,今天玩微信的时候,想到一个问题,感觉很有意思,请大家不吝指教~

微信/陌陌 可以通过 附近的人 来找朋友,
那么应该是把GPS数据存放于数据库中?
怎么设计数据库,可以实现 查找附近的人呢?
怎么样会高效点?

先谢谢各位~~

论坛徽章:
0
发表于 2014-09-21 15:34 |显示全部楼层
比如说,地图位置,按照大小W(假设是1KM),分成N个坐标,记录为(X,Y),并给予一个范围值(比如说W,或者W/2,或者2W。。),
(或者说,把地图分成N个方块,并把方块中心坐标设为(X,Y))
当用户A登录以后,假设其GPS坐标为 (X1,Y1),
并根据(X1,Y1) 属于哪个 (X,Y)范围,把用户A的ID/名字 存放于属于 (X,Y)的列表 或者 链表。
当用户A,或者和A同一个列表的其他用户,搜索 附近的人  时,就把这个列表的内容发给用户?

论坛徽章:
0
发表于 2014-09-21 15:45 |显示全部楼层
当然,考虑到边界条件,上面的做法是需要修正的。
比如说,A是在方块的边缘,
那么可以遍历 以(X,Y)为中心方块的,围着(X,Y)的其他8个方块的用户。。。。(即一共9个方块,(X,Y)位于方块中心)


不知道微信是怎么样做的呢。。。

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2014-09-22 01:50 |显示全部楼层
这个现在都是后台实名制的,连你十年前的女友都能找到,还不服气

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2014-09-22 01:51 |显示全部楼层
说得好听点,在研究大数据,不好听点都在做见不得人的事

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2014-09-22 01:57 |显示全部楼层
要说大数据,nosql用得多吧,


纯数组的模型太少了

论坛徽章:
0
发表于 2014-09-22 21:02 |显示全部楼层

没有不服气,我只是好奇想知道是怎么样实现的而已
回复 4# action08


   

论坛徽章:
0
发表于 2014-09-29 14:58 |显示全部楼层
这个版面好像比较冷清?

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
发表于 2014-09-29 16:12 |显示全部楼层
大数据分析,这个和数据库无关的,需要综合用户各方面信息来判断是否在附近

论坛徽章:
0
发表于 2014-09-29 17:44 |显示全部楼层
本帖最后由 大众推荐 于 2014-09-29 17:57 编辑

啊?这样子的啊??

能否详细点?
比如说,微信,好像就是可以拿到用户的GPS/WIFI之类的地址/基站(?)等信息而已吧,
而且,当要搜索附近的人的时候,一般要求打开 GPS(应该意味着,需要GPS信息),

理论上来说,只需要有GPS信息,并根据这个信息匹配一定范围内的就行(的确,这些数据可以不进入数据库)。

不清楚是不是就是这样做的呢?


chengchow 发表于 2014-09-29 16:12
大数据分析,这个和数据库无关的,需要综合用户各方面信息来判断是否在附近
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP