微信数据库分析与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微信数据库分析与设计
一、需求分析
微信作为当前的主要即时通讯工具之一,有着广泛的应用。其主要的功能是实现即时通信,这也是微信的核心功能。此外还有查看朋友圈动态、搜索好友、管理个人信息、建立用户自己的相册、收藏功能、摇一摇、搜索附近的人、购物、游戏等功能。此次对于微信平台的数据库设计主要对部分需要微信平台提供存储信息功能进行需求分析及设计。以下将对微信平台的主要需求做简要的分析并且根据分析做出数据流图使得对于微信平台数据库的设计有更好的理解。
微信的通信主要包括与微信好友进行相互通信,这其中通信内容包括文字、语音、图片及视频。当用户订阅了公众号之后,会接收公众号发送的消息并且也可向公众号发信息或许其提供的信息。
微信通信功能的另一个主要方面是实现群聊。用户可以加入一个微信群进行群。另一方面用户也可以选择自己的联系人进行群聊。
微信中通讯录实现了保存用户联系人的目的,并且订阅的公众号也保存于通讯录中,并且在通讯录中可以设定标签来为联系人分组。
微信朋友圈保存好友发送的与朋友共享的消息,其内容可为文字、图片、视频。在朋友圈中可以设定权限使得不同权限的用户查看的内容不一样。
摇一摇功能可以获取同一时刻一起摇动手机的用户,并且暂存于微信中。
附近的人功能可以识别在一定范围内的微信用户,并且将获得的用户信息也暂存在微信中,对于识别附近的用户可以设定具体的条件来扫描。
漂流瓶功能相当于随机的获取微信消息或者向微信用户随机的发送消息。
对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。
最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音等信息。
以上是对微信的部分功能的需求分析,现根据以上需求对微信数据库画出数据流图:
第0层DFD:
第1层DFD:
二、概念设计
在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及需要存储的信息。在概念设计中将进一步明确数据库设计所需实体,实体所具有的属性及实体之间的关系。
通过分析微信数据库平台所需实体主要有:用户信息、普通消息记录、公众号信息、公众号消息记录、微信群信息、群聊消息记录、收藏信息、相册、朋友圈信息、联系人信息、附近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。这些实体分别对应于微信功能的不同模块。
在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、群聊消息记录和联系人信息这几个实体。
在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每个属性对应了数据库中的具体属性。
下图是根据对于微信数据库平台的需求分析做出的CDM,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。
三、逻辑设计
由以上概念设计模型,我们可以获得以下逻辑数据模型(LDM)。
在LDM中对于CDM进行了进一步的细化和具体化,对其中的实体之间的关系在逻辑上进一步的进行了明确。在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型
(PDM)。通过PDM将具体显示数据库所需的表及其之间的关系。PDM如下图所示:
在PDM中显示了个表单之间的引用关系,其具体引用如下表:标间关系名称父表格子表格
关注用户信息关注
关注公众号信息关注
发送公众号信息公众号消息记录
发送/接收用户信息普通消息记录
发送消息用户信息群聊消息记录
收藏用户信息收藏信息
查看联系人信息普通消息记录
用户存放用户信息摇一摇信息
用户所在群用户信息用户所在群
用户所在群微信群信息用户所在群
用户所属用户信息漂流瓶信息
用户扫描获得用户信息扫一扫信息
用户相册用户信息相册
用户联系人用户信息联系人信息
群聊天记录微信群信息群聊消息记录
联系人相册联系人信息相册
获取用户信息附近人信息
本系统中使用的表单如下所示:
1、用户信息表
Name Data Type Length P(主键)F(外键)M(不可为空)用户ID char(15) 15 X X
昵称char(20) 20 X
头像long binary
二维码名片 long binary X
我的地址varchar(100) 100
性别char(5) 5 X
地区varchar(20) 20 X
个性签名varchar(500) 500
登陆密码varchar(20) 20 X
2、普通消息记录表
Name Data Type Length P F M
消息ID char(20) 20 X X
联系人ID char(15) 15 X
用户ID char(15) 15 X
内容varchar(5000) 5,000 X
发送时间datetime X
3、联系人表
Name Data Type Length P F M 朋友ID char(20) 20 X X 用户ID char(15) 15 X
备注名称char(20) 20 X 标签varchar(20) 20
4、公众号信息表
Name Data Type Length P F M 公众号ID char(20) 20 X X 公众号名称 char(40) 40 X
5、公众号消息记录表
Name Data Type Length P F M 公众消息ID char(20) 20 X X 公众号ID char(20) 20 X
公众消息varchar(5000) 5,000 X 订阅者varchar(8000) 8,000 X 发送时间timestamp X
6、关注表
Name Data Type Length P F M 用户ID char(15) 15 X X X 公众号ID char(20) 20 X X X
7、微信群信息表
Name Data Type Length P F M 群ID char(20) 20 X X 群名称char(20) 20 X 群二维码long binary X 群成员varchar(1000) 1,000 X
8、用户所在群表
Name Data Type Length P F M 用户ID char(15) 15 X X X 群ID char(20) 20 X X X
9、群聊消息记录表
Name Data Type Length P F M 群聊消息ID char(20) 20 X X