QQ数据库设计时:对于群成员上限的问题,不是从数据库层面解决的,而应该有专门的“配额检查”服务/逻辑,在群成员人数变化时用来判断当前群成员人数是否已超上限。
一、QQ数据库是怎样设计的
1、对于群成员上限的问题,不是从数据库层面解决的,而应该有专门的“配额检查”服务/逻辑,在群成员人数变化时用来判断当前群成员人数是否已超上限。而相应的配额都是全局统一配置的,可变更;
2、对于快速找到聊天记录的问题,说到底就是:缓存、分区与索引。
数据库设计就是将数据库中的实体以及这些数据实体之间关系进行规划和结构化。
数据库中创建的数据结构的种类,以及在数据实体之间建立的复杂关系是决定数据库系统效率的重要因素。
- 设计数据库步骤:
开发一个项目需要经过需求分析,概要设计,(详细设计),代码编写,运行测试和上线维护几个阶段,下面重点讨论在各个阶段中数据库的设计过程。
需求分析阶段:分析客户的业务和数据处理需求
概要设计阶段:绘制数据库的ER模型图,用于在项目团队内部、设计人员和客户之间进行沟通,确认需求信息的正确性和完整性。
详细设计阶段:将ER图转换为多张表,进行逻辑设计,确认各表的主外键并应用数据库设计的三大范式进行审核,经项目组开会讨论确定后,还需根据项目的技术实现团队开发能力以及项目的经费来源,选择具体的数据库(如MySQL成 Oracle等)进行物理实现。包括创建库和创建表,存储过程等,创建完毕后,开始进入代码编写阶段,开发前后端应用程序。
- E-R图:
实体:所调实体就是指现实世界中具有区分其他事物的特征或属性并与其他实体有联系的实体
属性:属性可以理解为实体的特征
联系:两个或多个实体之间的关联关系
映射基数:表示通过联系与该实体关联的其他实体的个数,对于实体集X和Y之间的二元关系,映射基数必须为下列基数之一:
ER图以图形的方式将数据库的整个逻辑结构表示出来:
矩形表示实体集;椭圆形表示属性;菱形表示联系集;直线用来连接属性和实体集,也用来连接实体集和联系集
延伸阅读:
二、实例(instance)是什么
一组Oracle 后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。