如何实现加好友……

shuqiyiling 2011-06-27 09:00:50
各位大侠,在多人博客里要想实现将对方加为好友,并在博主页面中显示好友的最近动态,这个功能应该怎么实现呢,最主要的是数据库中该如何设计博主与好友的关系表,谢谢……
...全文
435 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你应该找这个行业开发软件的专业公司、专业的程序,去学习。而不是找那些只写过OA的教师们去学习通讯程序设计。
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
各位大侠,在多人博客里要想实现将对方加为好友,并在博主页面中显示好友的最近动态,这个功能应该怎么实现呢,最主要的是数据库中该如何设计博主与好友的关系表,谢谢……
[/Quote]
数据库表其实非常简单,而且是细枝末节。不过很多靠自学来学习编程的“培训教师”们却满脑子只有数据库表。

如果你是想理解真正的 IM 的设计,我劝你扔掉什么“数据库”去想想真实的程序的业务逻辑流程。

比如我们要想加对方为好友,需要一个有着好几个步骤的操作。比如我发一个申请给对方,对方可能过了7、8个小时才同意、或者拒绝;或者当对方一个业务逻辑设计的时间内,假设没有反馈的,而系统会告诉对方再次确认。我这里只是举出加好友并且防骚扰的业务流程中的个别步骤,如果你仔细分析,还会有必须的其它步骤。

而将结果保存到数据库表,纯粹是没有什么技术含量的小伎俩。你只要按照“大白话”——xxxx是yyyy的好友——这句话来设计数据库表就行了。保存数据到数据库表,不是业务逻辑设计。我们在面试那些XX鸟、达XX培训班出来的学院时他们往往夸口说“做过QQ了”,可是对这类 IM 的各处的逻辑设计一点概念都没有。一个没有基于业务逻辑、行业软件的规则而教学的培训班,只会害一帮学员成为知识歪曲了的程序员。最终他们根本没有学会 IM 程序设计,只学会几句“SQL Server增删改查”语句。
sunxiaoccc 2012-10-03
  • 打赏
  • 举报
回复
我的网站上的好友功能是这样实现的

创建一个好友表

FriendID MainUserID OtherUserID State

编号  主动方  被动方  状态

如果主动方邀请被动方,则创建一条 MainUserID:主动方 OtherUserID:被动方 State:未审核状态

如果被动方通过邀请,则将上面的审核状态设成true,然后在创建一条记录 MainUserID:被动方 OtherUserID:主动方 State:true的记录

这样就相互成了好友



删除的时候,需要同时删除两条记录

心灵彩虹 2011-07-06
  • 打赏
  • 举报
回复
将好友id保存到你的表中,然后来判断。
lkh930303 2011-07-06
  • 打赏
  • 举报
回复
表里应该有个state状态字段 为1的时候是好友,为0不是好友 等等等等
porschev 2011-06-27
  • 打赏
  • 举报
回复

建立一下好友关系表。。。
子夜__ 2011-06-27
  • 打赏
  • 举报
回复
简单点的

加好友 其实就是一个链式ID 1,2,3,4,5,6

123456是好友的ID

动态的话 就去in查询 这个好友最近都做了什么

select top 5....where id in ()

这样阿里取几条显示

fengdebinlong 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 skydemo 的回复:]
建一个关系表来操作(多对多的关系) 比较合理
[/Quote]

大哥能不能详细的说一下
一切为了你 2011-06-27
  • 打赏
  • 举报
回复
建一个关系表来操作(多对多的关系) 比较合理
baysos 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shuqiyiling 的回复:]
谢谢各位的思路,但是有一个问题,如果主人A有多个好友呢,是要用表的ID做主键吗,那样这张表是不是太大了呢,
[/Quote]
固然会大的。主键自己定了
shuqiyiling 2011-06-27
  • 打赏
  • 举报
回复
谢谢各位的思路,但是有一个问题,如果主人A有多个好友呢,是要用表的ID做主键吗,那样这张表是不是太大了呢,
轮销桂魄@ 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nevermore_0923 的回复:]
有一张好友表,里面有ID,主人A的ID,好友B的ID。还有一个状态,如果A给B发送添加好友的请求。这个状态就是0,B同意以后就是1,B拒绝就是-1.大概就这样子。
[/Quote]
这也可以,但是考虑的有点简单,A是B的好友 没问题,还是有就是B是A的好友 等一些其他的关系也得考虑下
整个联合主键 的表 也未尝不可。
弦弦 2011-06-27
  • 打赏
  • 举报
回复
有一张好友表,里面有ID,主人A的ID,好友B的ID。还有一个状态,如果A给B发送添加好友的请求。这个状态就是0,B同意以后就是1,B拒绝就是-1.大概就这样子。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧