问题描述
- 一个数据库设计的问题,群组人员的维系问题
-
想要实现和qq群一样的功能,数据库的表该怎么设计,之前有想过通过一个表将用户和群联系起来,这个表放用户id和群组id,但是一想一个用户多个群,一个群那么多用户,这个数据量会非常大。想了好久没想明白该怎么做,有没有大神能给点思路指导指导,谢谢了
解决方案
对用户群表添加用户从表,以群id+用户id作为联合主键
从表中可以添加用户在群中的个性化信息
对用户从表中群id与用户id添加索引,提高查询效率
实际场景中,用户群与用户不会发生笛卡儿乘积那样的数据组合,所以先不需要考虑大数据量
等业务发展,可以考虑用分区,分表,分库的方式一步步拓展数据结构
解决方案二:
基本的设计就是你说的那样,但是为了提高性能,我们有很多改进的办法,比如说在用户表中添加冗余字段缓存它的群组关系。分表分库,并且并行查询。对外键做索引等等。
解决方案三:
你的想法是对的,两者之间有一个关联表,联合主键
时间: 2024-10-03 20:11:54