最近研究sns的好友系统,才慢慢理解了六度分割中的度的概念,比如:我跟你是好友,咱们之间的度就是1,你的好友呢,也就是我的好友的好友,那我们之间的度就是2,相当于隔了多少层。
比如我有个好友表:(以双向好友表为例)
user_id friend_id
1 2
1 3
2 1
2 3
3 1
3 2
3 4
如果我的id是1 那么我的好友就是2,3 也就是
select friend_id from xxx where user_id=1
这句话就是查看我的直接好友,也就是一度好友
那么查看二度好友呢 就在循环遍历一遍 也就是查找我的好友的好友
而好友关系是这样 A->B->C C是A的二度好友
也就是
select friend_id from xxx where user_id in (select friend_id from xxx where user_id=1)
这是id为1的二度好友 可是如果A->C 那个C与A认识 ABC互相认识,C既可以是A的一度好友也可以是A的二度好友,这时就看要求了,如果要是只查二度好友,就可以用上面的句子,如果要是想看不认识的二度好友,就像人人网的好友推荐那样,还要在上面的结果中把A的好友去除,也就是
select friend_id from xxx where user_id in (select friend_id from xxx where user_id=1) and friend_id not in(select friend_id from xxx where user_id=1)
括号内为一度好友查询
恩 这样就是不认识的二度好友了
看到这里大家也应该明白了 二度好友就是在一度好友的情况下 在遍历一遍 如果每个人的好友有n个 那么你的二度好友就是n*n个
现实世界中假设你的好友有100个 肯定比这个多 那么二度好友就是10000个(先不排除认识二度好友) 那么6度好友就是100^6 1万亿 地球上才几十亿 也就是这个道理
废话不说 继续跟着上述的SQL 根据sql出的结果是二度好友数 可是还有情况是好友是自己 也就是循环一圈回来了- -! 因为是双向好友表嘛 需要在结果中把自己的id去掉
select friend_id from xxx where user_id in (select friend_id from xxx where user_id=1) and friend_id not in(select friend_id from xxx where user_id=1) and friend_id <> 1
括号内为一度好友查询
可以根据group by 分下组 就知道了自己不认识的人 和自己有多少个共同好友 也就是人人的好友推荐了
如果要是查询两人的共同好友,我又要开一贴了,况且我这是sql数据库 人人好像用的nosql,想不管这么多
写完了
欢迎大家提意见
分享到:
相关推荐
社交网络搜索算法(SNS)-Matlab实现 该算法模仿人们在进行社交时的真实行为,对真实行为进行建模,然后通过行为优化寻优操作,并模仿用户如何收到影响并且激励他们的新观点。 如果没有积分或者打不开的朋友可以联系...
SNS算法 求解12个工程优化问题 Matlab
【优化算法Matlab代码】资源存储库-第二期-社交网络搜索算法(SNS + 工程应用)Social+Network+Search+for+solving+engineering+problems.zip 社交网络搜索算法(Social Network Search,SNS)是于2021年提出的一种新型...
包含13个标准工程优化问题及社交网络搜索算法源代码,亲测有效
(python源码)[完成]基于sns预测心脏病算法实现:在Python中,使用seaborn(通常缩写为sns)库,结合pandas、matplotlib、seaborn以及机器学习库(如scikit-learn)来分析和预测心脏病。 数据准备:首先,你需要一...
SNS2124&SNS2224&SNS2248&SNS3096&SNS5192&SNS5384产品文档
作为一款大型高并发高负载的开源SNS软件,iwebSNS功能强大,易于扩展,具有良好的伸缩性和稳定性。 它基于iweb SuperInteraction(简称iweb SI)框架开发。借助iwebSI平台,站点可以轻松获得支持热插拔及快速增加新...
sns-login sns-loginsns-loginsns-login sns-login sns-login
iwebSNS是一款功能强大且易于扩展的LAMP开源社交网络平台。 它基于iweb SuperInteraction(简称iweb SI)框架开发。借助iwebSI平台,站点可以轻松获得支持热插拔及快速增加新节点的集群计算与处理能力(分布式计算与...
focus sns jsp 开源sns框架代码 connect-web.rar
iWebSNS 功能特性 1、通过成本更低廉并且更优秀扩展能力的iWebSI 平台库支持,iWebSNS 可轻松应对庞大的流量与新增数据。无论您是已建网站还是新建网站、企业级网站或是个人网站、独立服务器或是虚拟主机,iWeb...
sns社交网站论文 有详细的配置sns社交网站论文 有详细的配置sns社交网站论文 有详细的配置
探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS
作为一款大型高并发高负载的开源SNS(社交网络服务)软件,iwebSNS功能强大,易于扩展,具有良好的伸缩性和稳定性。 它基于iweb SuperInteraction(简称iweb SI)框架开发。借助iwebSI平台,站点可以轻松获得支持热插...
使用它,可以为用户构建一个以好友关系为核心的即时交流网络,也可以把它作为web客服软件来使用。 +----------------------------------+ iwebIM软件环境需求 +----------------------------------+ 1. 可用的 ...
山寨SNS由S.T支持团队荣誉出品。欢迎大家捧场 更新日志 2008-12-3 停车大站更新后台图片无法打开的错误。 2008-12-4 停车大站前台js不兼容错误 动ta一下在部分mysql版本无法安装的错误 2008-12-5 停车大站ajax标点...
iWebSNS, 是一款功能强大且易于扩展的 LAMP 开源SNS(社交网络)软件。通过iWebSNS,可以使您的网站迅速、轻松地构建起一个以人际关系为核心的结构体系。使得用户可以通过自主创建日志、上传照片,来记录他/她生活中的...
网络游戏-SNS网络中好友推荐方法与系统.zip
现在社会的营销种类繁多,而网络营销更是一种最为流行的营销方式。而SNS营销又是网络中最有效的营销方式。本文将对典型的SNS营销案例《屈臣氏--星座团团抱》进行详细的分析。
SNS网站建设方案