mysql好友关系数据表设计_即时通讯数据库好友关系(一对多)应该怎样设计?...

[MYSQL里面有如下的表  user:id username photo:id name photo_favour(图片收藏关系表):photo_id user_id假设这几个表都相当大,需要进行分表。我的分表规则是:user表按

即时通讯数据库好友关系(一对多)应该怎样设计?

问1:

比如一个帐户的号码,年龄,性别,说明等用一张表完全可以容纳下了,但每个帐户有很多的好友,好友放这张表里不太好办吧?

是不是要为每一个帐户新建一张表来存储好友?

问2:如果是这个不是好友而是礼物数呢?意思就是我是楼主,楼主的好友,我要送礼物给楼主的好友?(待解)[关系型数据库[如Mysql],一对多关系,如用户id=1,该用户可以同时属于不同的分组[group_id=1,group_id=2],这时的数据库表该如何设计合理呢,我目前是这样的,user关系表,每一个

问1解决:

要建立好友关系表。

说明谁是谁的好友,反过来不成立的。

按照QQ的行为,假设我是LZ(楼主)的好友,那么就有关系:我->LZ(楼主)

LZ是我的好友,就有:LZ->我

假设我们互为好友,就有:LZ->我 和 我->LZ

如果大了,好友关系表要分表。例如:1-1000的好友关系存放在A表,1001-2000的好友关系存放在B表。

至于要不要分表,看你的IM的系统容量和你用的数据库的性能。

每个帐户都得有一个系统内部识别的ID(一般用整形(2、4、8字节))

好友关系表就是这些ID的一种组合,通常2-3个整形字段就可以了,按发起ID做一个簇索引

这样的表,记录虽然很多,绝对容量并不大

1(用户基本信息表,内含 ID)对多(好友关系表,ID&ID...)

待解。

[全部折叠同时提供下列产品的其他版本: SQL Server 2005SQL Server 2008 联机丛书(2009 年 1 月)设计数据库关系图 (Visual Database Tools)数据库设计器是一种可视化工

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值