当前位置:首页 » 数据仓库 » 好友系统数据库设计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

好友系统数据库设计

发布时间: 2023-06-01 14:39:05

① 好友关系数据库怎么设计的

好友关系是双向的:user1 > user2与 user2 > user1是重复的。目前业务很简单就是好友关系。预想4个字段解决:id(自增)to_user(添加用户)
form_user(被添加用户)relation(用户关系)0:好友 1:拉黑但是还是想来问问看,想多了解一下相关的思路。

② 聊天系统的好友列表数据库如何设计

对于关系数据库,可以设一个这样的字段,这个字段里存放了李四的所有好友,每个好友以“,”分隔;
对于非关系数据库,比如说健值数据库,可以使用一个大型的HASH表来存放,李四的所有好友以一个链接的方式串起来

比如:
linker表示链接
hash(李四)=linker(王五、张三、黄光、李明)

③ 微博 好友关注和推送功能的数据库设计是怎么实现的底层设计

我虽然没参与过微博底层的开发,如果是我设计这个数据库的话我会用2张表解决这个问题
第一张表 用户信息表, 主要依靠ID主键识别用户

第二张表,关系表, 关键col3列 前两列 分别是 好友源 和 好友目标 ,第三列是 关系状态

然后加了好友 只要不断地 在第二张表加入 新行 比如

用户A,用户C ,好友
用户A,用户B ,黑名单
用户B,用户A, 好友

如果是QQ这类 检索关系时候 0, 1字段一起搜索ID 就是互为好友
微博这种 就是单向的 关注。
大概就是这样的模型

可能的问题是用户过多时候表2可能会非常巨大。检索速度可能会受影响
用资源换效率的方式
还可以每个用户一张表

④ 关于 QQ 好友数据库设计

针对sql server数据库来说(sql server比mysql好一些,比oracle差),如果有一个万个用户就一万张表。数据库对表数量的支持也是有限制的。
并且创建表需要有相应的级别比较高的权限,如果每注册一个用户就新建一张表,用户的权限太高了。
再次,按照你的说法,一个人假设有1000个好友,每个表也就1000条数据,相对于数据库来说,这个存储量是相当小的,没有发挥到很好的性能。sql server数据库几百万万条数据是没问题的。
最后,这样查询可能会带来方面之处,但是如果用到了存储过程,复杂的联合查询等(这些都是在数据库中常用的),你这样做就很难完成了。

所以,为何不把这些数据集中到一张表里面呢?

⑤ 类似QQ好友关系数据库应该怎么设计

同时在线人数最高时超过一亿人。
不要告诉我是一对好友关系一条记录,那样岂不是几十亿条记录。我想肯定不是这样的。
------解决方案--------------------------------------------------------
userid, frientid,groupid
------解决方案--------------------------------------------------------
1、使用冗余,每个人的好友信息都在数据库中有存储,就是你说的记录一对一关系
2、数据缓存到内存,数据访问很快
3、状态信息修改异步,比如一个人登陆了,他的好友不是马上就知道,中间间隔几秒也没有关系
4、数据可能不放在关系数据库中,可能使用nosql数据库,比如mongodb,bigtable,cassandra等
5、facebook,twitter就是用类似的思想
严格按照范式理论就OK。

⑥ 做个好友系统 用mysql 不知道 怎么设计数据库 字段有 好友ID 自己的ID 还有一个好友度 求给个思路

你好,
一个好的数据神尺库设计,首先要保证其满足第三范式的要求。
第三范式:每个非关键字列都独立于其他非关键字列,并依赖于关键字,第三范式基数指数据库中游锋高不能存在传递函数依赖关系。
也就是说,非主键字段不能有直接依赖关系或者说一个表中的列不依赖于另一个表中的非主键的列
根据以上思路,应该有
个人表(或用户表),存放个人信息。
好友表,存放好友信息。
好友关系表:用户与好友之间的关系,与那些好友ID关联。

⑦ ASP.NET网站中好友功能怎么做,数据库怎么设计

做一个表,里面字段 会员Id,要添加为好友的会员Id,状态(是否对方通过审核)。
例:
如当前会员Id为1,目标会员Id为2
当加对方为好友时。写入:
会兄隐扒员id:1,目标会员Id:2,状态:未审。同时你可以通过站内信功能通知对方。站内信里可以加链接,接受或拒绝。
当对方登录后,点击接受,则再次写入记录,当前会员Id:2,目标会员:1,状态:羡昌已审。同时更新前一条记录。的审核状态。
如果是携滚拒绝则删除对方的添加记录。就是前面的那个。同时发站内信通知会员1.

在显示我的好友时,调用出所有审核状态为通过的记录即可。

⑧ 【 数据库设计】好友关系表该如何去设计

单独设计一张表
两肢庆迅个字段 我的id (差粗local_user_id) 好友的id(remote_user_id) 编号(rela_id)可有可无历此

⑨ 类似qq加好友的功能数据库应该怎么设计比较合理

建议建2个表
个人表user
(id,qq)id
为序列,qq为存渣咐梁放你自己的qq号码,这样你有几个qq号简汪就有几列
好友表friend
(id,friend_qq,userid)id同样为序列,为以后业务扩充做准备,friend_qq
为好友的qq号如运,userid为个人表
user
的id,
这样2表通过userid连接,

select
*
from
friend
b,user
a
where
a.id=b.userid
and
a.qq=?????
就可以查出你的某个qq号对应的所有好友

⑩ 好友列表数据库设计

3种解决方法,也谈谈这三种的弊端吧!
方法:
一.每创建一个用户.自动创建一个该用户的好友用户表.每一行的记录是一个好友记录.
二.做一个Frient的表,表中有两列,第一列UID是用户ID,第二列FID是对应该用户的好友
三,在用户信息的表中,有一个字段10000长度的varchar 里边用','号分割各个好友的ID

弊端:
一:只适合少量的用户论坛,如果有100万个注册用户,就得有100万张好友表,这样当用户一多,数据库会很大!
二:这种方法是给用户注册表创建一张好友关联表,这样或许是这三种方法中最好的方式了吧,但是注意记得要添加索引,不然查询起来,数据一多,会非常慢;
三、这样在程序方面会比较麻烦,先取出来,后添加数据,再update,感觉速度会上不来...........