2 tandrow Tandrow 于 2016.01.26 16:32 提问

一个数据库设计的问题,群组人员的维系问题

想要实现和qq群一样的功能,数据库的表该怎么设计,之前有想过通过一个表将用户和群联系起来,这个表放用户id和群组id,但是一想一个用户多个群,一个群那么多用户,这个数据量会非常大。想了好久没想明白该怎么做,有没有大神能给点思路指导指导,谢谢了图片说明

3个回答

wanghan1977
wanghan1977   2016.01.29 10:16
已采纳

对用户群表添加用户从表,以群id+用户id作为联合主键
从表中可以添加用户在群中的个性化信息
对用户从表中群id与用户id添加索引,提高查询效率

实际场景中,用户群与用户不会发生笛卡儿乘积那样的数据组合,所以先不需要考虑大数据量
等业务发展,可以考虑用分区,分表,分库的方式一步步拓展数据结构

caozhy
caozhy   Ds   Rxr 2016.01.27 07:57

基本的设计就是你说的那样,但是为了提高性能,我们有很多改进的办法,比如说在用户表中添加冗余字段缓存它的群组关系。分表分库,并且并行查询。对外键做索引等等。

bdmh
bdmh   Ds   Rxr 2016.01.26 16:47

你的想法是对的,两者之间有一个关联表,联合主键

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!