java推荐系统:好友推荐思路

2024-01-07 17:46:44

1.表的设计

? ? ? ? 表里面就两个字段,一个字段是用户id,另外一个字段是好友id,假如A跟B互为好友,那在数据库里面就会有两条数据
????????
8e8a449114464afaa6468850e930bc0f.jpeg
?

2.推荐好友思路

59851339b51a406982ab3ab12ab53e39.jpeg

上面的图的意思是:h跟a的互为好友,a跟b,c,d互为好友...

????????现在我要找a的推荐好友,这个时候怎么办呢?首先我们先找到,a的上级就是h,然后找到a的下级b,c,d,(这个对应到数据库表里面:a的上级就是好友id是a的id的那些数据,a的下级就是用户id是a的id的那些数据)

? ? ? ? 1. 我们先找到h的上级用户:在图上没有上级用户,下级用户:a

? ? ? ? 2.?找到b的上级:a,下级用户:z,e

? ? ? ? 3.?找到c的上级:a,z,下级用户:没有

? ? ? ? 4.?找到d的上级:a,下级用户:没有

? ? ? ? 5. 这个时候我们把这些已经找到的数据,全部合在一起:那就是4个a,2个z,1个e,然后排除 a?本身(因为给a推荐好友,总不能自己推荐自己吧),所以就会给a推荐 z跟e这两个人,然后还能根据共同好友数量,来做排序

? ? ? ? 6.?其中z跟a有两个共同好友(c跟b) ,e跟a有1个共同好友(b),同理给e推荐好友,也只会推荐到a这个人

????????原理就是集合的交集,然后这种思路具体的算法就靠自己去实现了,不过也不是什么难事,有点编程功底的都可以实现的,只不过是速度的快慢而已。

????????最简单的实现就是先查到a的上下级,然后通过for循环,依次找到各自的上下级用户,最后做统计处理

?

?

文章来源:https://blog.csdn.net/qq_26112725/article/details/135436924
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。