您的位置:首页 > 数据库

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

2016-05-24 20:35 507 查看


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

问1:

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

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

问2:如果是这个不是好友而是礼物数呢?意思就是我是楼主,楼主的好友,我要送礼物给楼主的好友?(待解)

问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...)

待解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: