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

问题描述

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

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

解决方案

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

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

解决方案二:

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

解决方案三:

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

时间: 2024-10-03 20:11:54

数据表设计-一个数据库设计的问题,群组人员的维系问题的相关文章

如何设计一个数据库中间件(支持百亿级别数据存储)

继<如何设计开发一个可用的web容器>之后又一如何系列文章,<如何设计一个数据库中间件> ==========广告时间========== 鄙人的新书<Tomcat内核设计剖析>已经在京东预售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定.感谢各位朋友. =========================

我想设计一个数据库,用来存课表,可是查询的时候该怎么写

问题描述 我想设计一个数据库,用来存课表,可是查询的时候该怎么写 解决方案 首先你得 创建表以及各个列值. 推荐: 列值:key1(储存第几周).key2(星期几).key3(时间段,比如早上8点到10点,用1表示).key4(储存上课内容).key5(储存上课地点) select key4,key5 from table where key1=? and key2=? and key3=? ?是你输入的条件 解决方案二: Select 字段名 from 表名 where 字段名=条件 注:.*

数据库的关系理论-一个数据库设计的问题

问题描述 一个数据库设计的问题 是这样的要开发一个在线订餐的网站,跟淘宝的方式差不多,饭店在线注册后就可以在网站上接受在线订餐,用户可以根据自己所在区域选择较近的饭店进行订餐 ,这样一来数据库设计的时候 就出了一个问题 每家饭店的菜品不一定一样 有些菜品一样比如都是是鱼香肉丝价格会有差异 这个菜品表要怎么设计按照原来设计 菜品表(主键,名称,规格,价格,图品地址,外键[所属饭店]) 这样设计的话如果一道菜出现在两家或两家以上的饭店切价格规格都相同数据就产生冗余了 是对应每家饭店自动生成含有相同字

怎样把一个datagridview表中的数据存为一个数据库中的一个数据表?

问题描述 如题....在线等..... 解决方案 解决方案二:从它的数据源datatable直接循环构成insert语句即可解决方案三:SqlCommandBuilderSCB=newSqlCommandBuilder(dataAdapter1);dataAdapter1.Update(dgv1.Tables[0]);解决方案四:注意要定义变量dataAdapter1,ds1dgv要绑定ds1.Tables[0]SqlCommandBuilderSCB=newSqlCommandBuilder(

数据专递-将一个数据库中的数据存入另一个数据库

问题描述 将一个数据库中的数据存入另一个数据库 将一个多字段的数据库中的数据存入到另一个少字段的数据库并且取过多字段数据库中的状态需要发生变化,

一个数据库设计的问题

问题描述 看到一个数据库的设计,里面有个大表被拆分成2个小表,子表的主键同时也是外键,也就是说2个表之间是1对1的关系.这样拆开的意义是什么???求高手解惑!~ 问题补充:wind0406 写道 解决方案 就是说,商户的地址信息不是每次返回商户的时候都要用到的.解决方案二:有外键的表可以是另一个表的子集,所以实际关系是一对零或一.解决方案三:可能是为了更加明确地将其分成两个业务来处理,这样每个字段的意义更加明确,查询起来方便快速解决方案四:首先可以分开query:另外再看看index有什么不同.

提供了数据表,请高手帮忙设计个.NET的曲线图(在线等一晚上,急)

问题描述 数据表:记录交换机端口状态和状态转换的时间字段名(类型)意义Ip(char)IPPort(char)端口Status(char)状态(updown)LoginTime(datetime)上机时间LogoffTime(datetime)下机时间部分记录:10.10.143.2:5682910.10.143.2:5682Active2008-4-2119:43:322008-4-2023:08:0510.10.143.3:5659810.10.143.3:5659Active2008-4-

sql server 复制表从一个数据库到另一个数据库_MsSql

/*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使

sql server 复制表从一个数据库到另一个数据库

/*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使