mysql 查询好友拓扑关系语句

问题起因:因为公司要把客户的关系进行整合(行业内关系基本上都是有交集的),想邀请客户进行开会的时候呢,尽量都是邀请大家都是认识的,或者不认识,但是都有共同的好友,
比如
A 好友 B
B 好友 A C
C 好友 B
D 好友 E
虽然A 和 C 都不认识 但是有共同的好友B
那么开会的时候情况
1:要么邀请大家都认识的,比如就2个那么久A,B 或者B C
2:人数实在不够 比如3人 ,那么通过共同关系 B 来邀请 ABC

想设计如下2个表:

用户表A
ID    姓名    
1     X1       
2     X2       
3     X3       
4     X4       
5     X5    
   
用户关系表B
ID    UserID    好友ID
1     1          2        感觉好重复 1 好友  2  ,那么2比如有个记录对应1  如ID5这条记录 
3     1          4
4     1          5
5     2          1   
6     2          3
7     3          5
8     4          1     
9     4          5
10    5          1
11    5          4        
12    5          3 
梳理下   
1好友  2,4,5
2好友  1,3  
3好友  5
4好友  1,5
5好友  1,4,3

问题来了 
1:公司向邀请3个人,那么邀请 1,4,5 3个人就够了 ,因为大家还都认识
2:公司邀请4个人呢, 邀请谁呢,感觉太复杂了这个客户的逻辑关系
请问有谁家的公司接触过此类的项目,想学习下经验。或者相关的资料文档。

        
阅读 2.3k
2 个回答

没有必要事事都用技术去解决。有些特殊情况完全可以人工处理。或者实在没有确切算法能确定的,就随机好了。

邀请三个人:找出所有人里共同有的好友三个
邀请四个人:找出所有人里共同有的好友四个
当邀请人数过多到达五个人(或者更多)可以将出现人数进行排列(按照从大到小)取前5个人(或者更多)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题