




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0 可编辑可修改1 微信数据库分析与设计一、需求分析微信作为当前的主要即时通讯工具之一,有着广泛的应用。其主要的功能是实现即时通信,这也是微信的核心功能。此外还有查看朋友圈动态、搜索好友、管理个人信息、 建立用户自己的相册、 收藏功能、摇一摇、搜索附近的人、 购物、游戏等功能。此次对于微信平台的数据库设计主要对部分需要微信平台提供存储信息功能进行需求分析及设计。 以下将对微信平台的主要需求做简要的分析并且根据分析做出数据流图使得对于微信平台数据库的设计有更好的理解。微信的通信主要包括与微信好友进行相互通信,这其中通信内容包括文字、语音、图片及视频。 当用户订阅了公众号之后, 会接收公众号
2、发送的消息并且也可向公众号发信息或许其提供的信息。微信通信功能的另一个主要方面是实现群聊。用户可以加入一个微信群进行群。另一方面用户也可以选择自己的联系人进行群聊。微信中通讯录实现了保存用户联系人的目的,并且订阅的公众号也保存于通讯录中,并且在通讯录中可以设定标签来为联系人分组。微信朋友圈保存好友发送的与朋友共享的消息,其内容可为文字、图片、视频。在朋友圈中可以设定权限使得不同权限的用户查看的内容不一样。摇一摇功能可以获取同一时刻一起摇动手机的用户,并且暂存于微信中。附近的人功能可以识别在一定范围内的微信用户,并且将获得的用户信息也暂存在微信中,对于识别附近的用户可以设定具体的条件来扫描。漂流
3、瓶功能相当于随机的获取微信消息或者向微信用户随机的发送消息。对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音等信息。以上是对微信的部分功能的需求分析,现根据以上需求对微信数据库画出数据流图:v1.0 可编辑可修改2 第 0 层 dfd :第 1 层 dfd :v1.0 可编辑可修改3 v1.0 可编辑可修改4 二、概念设计在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及需要存储的信息。 在概念设计中将进一步明确数据库设计所需实体,实体所具有的属性及实体之间的关系。通过分析微信数据库平台所需实体主
4、要有:用户信息、普通消息记录、公众号信息、公众号消息记录、微信群信息、群聊消息记录、收藏信息、相册、朋友圈信息、联系人信息、附近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。这些实体分别对应于微信功能的不同模块。在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、群聊消息记录和联系人信息这几个实体。在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每个属性对应了数据库中的具体属性。下图是根据对于微信数据库平台的需求分析做出的cdm ,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。v1.0 可编辑可修改5 v1.0 可编辑可修改6 三、逻辑
5、设计由以上概念设计模型,我们可以获得以下逻辑数据模型(ldm )。在 ldm中对于 cdm 进行了进一步的细化和具体化,对其中的实体之间的关系在逻辑上进v1.0 可编辑可修改7 一步的进行了明确。在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型(pdm )。通过pdm 将具体显示数据库所需的表及其之间的关系。pdm 如下图所示:v1.0 可编辑可修改8 在 pdm 中显示了个表单之间的引用关系,其具体引用如下表:v1.0 可编辑可修改9 标间关系名称父表格子表格关注用户信息关注关注公众号信息关注发送公众号信息公众号消息记录发送/ 接收用户信息普通消息记录发送消息用户信息群聊消息记录
6、收藏用户信息收藏信息查看联系人信息普通消息记录用户存放用户信息摇一摇信息用户所在群用户信息用户所在群用户所在群微信群信息用户所在群用户所属用户信息漂流瓶信息用户扫描获得用户信息扫一扫信息用户相册用户信息相册用户联系人用户信息联系人信息群聊天记录微信群信息群聊消息记录联系人相册联系人信息相册获取用户信息附近人信息本系统中使用的表单如下所示:1、用户信息表namedata typelength p(主键) f(外键) m (不可为空)用户 idchar(15)15xx昵称char(20)20x头像long binaryv1.0 可编辑可修改10 二维码名片long binaryx我的地址varch
7、ar(100)100性别char(5)5x地区varchar(20)20x个性签名varchar(500)500登陆密码varchar(20)20x2、普通消息记录表namedata typelength pfm消息 idchar(20)20xx联系人 idchar(15)15x用户 idchar(15)15x内容varchar(5000)5,000x发送时间datetimex3、联系人表namedata typelength pfm朋友 idchar(20)20xx用户 idchar(15)15x备注名称char(20)20x标签varchar(20)204、公众号信息表namedata t
8、ypelengthpfm公众号 idchar(20)20xxv1.0 可编辑可修改11 公众号名称char(40)40x5、公众号消息记录表namedata typelengthpfm公众消息 id char(20)20xx公众号 idchar(20)20x公众消息varchar(5000)5,000x订阅者varchar(8000)8,000x发送时间timestampx6、关注表namedata typelengthpfm用户 idchar(15)15xxx公众号 idchar(20)20xxx7、微信群信息表namedata typelengthpfm群 idchar(20)20xx群名
9、称char(20)20x群二维码long binaryx群成员varchar(1000)1,000x8、用户所在群表namedata typelengthpfm用户 idchar(15)15xxx群 idchar(20)20xxxv1.0 可编辑可修改12 9、群聊消息记录表namedata typelengthpfm群聊消息 id char(20)20xx群 idchar(20)20x发送人char(20)20x发送时间timestampx内容varchar(5000)5,000x10、相册表namedata typelengthpfm相册 idchar(20)20xx用户 idchar(1
10、5)15x联系人 idchar(20)20x存放时间timestampx内容varchar(5000)5,000x11、收藏信息表namedata typelengthpfm收藏 idchar(20)20xx用户 idchar(15)15x收藏时间timestamp收藏内容varchar(8000)8,00012、附近人信息表namedata typelengthpfm附近人 idchar(20)20xxv1.0 可编辑可修改13 用户 idchar(15)15x昵称char(20)20x距离integer性别char(5)5地区varchar(20)20个性签名varchar(500)500
11、13、摇一摇信息表namedata typelengthpfm摇一摇信息idchar(20)20xx用户 idchar(15)15x时间timestamp内容varchar(5000)5,00014、扫一扫信息表namedata typelengthpfm扫一扫信息idchar(20)20xx用户 idchar(15)15x时间timestamp内容varchar(5000)5,000x15、漂流瓶信息表namedata typelengthpfm漂流瓶 idchar(20)20xxv1.0 可编辑可修改14 用户 idchar(15)15x内容varchar(5000)5,000x对于微信数
12、据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个表之间的引用关系, 在接下来的物理设计中将使用逻辑设计中的表在具体数据库实现微信数据库平台的设计。四、物理设计在此次物理实现微信数据库平台使用sql server 2008 。实现简单的微信平台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台对信息的发送接收及查看。在此次物理实现是我们遵循3nf 。数据库设计如下图:1、向“用户信息”表添加记录,模拟微信在线用户。此次添加三个用户作为模v1.0 可编辑可修改15 拟的微信用户。用户基本信息如下:2、我们选取“小a”登陆微信,开始添加联系人。“联系人”表保存每个用户的联系人信息,这
13、些联系人信息皆来自用户信息表。“小a”的联系人如下表:此表的创建过程如下:3、普通用户发送消息时, 消息内容将存储在 “普通消息记录” 表中,如现在“小a”向“小 b”发送一条消息,然后“小b”再回复一条。“小a”也向“小 c”发送一条消息。v1.0 可编辑可修改16 其中表中的外键约束和默认值如下:在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a”和”小 b“之间的聊天记录:同样也可以在“普通消消息记录表”中实现删除消息记录。在“普通消息记录” 表中为了能使用户更快的查询自己的消息记录,这里创建了索引。4、“微信群信息”表中记录了所有用户创建的微信群的信息。由于在微信中群
14、v1.0 可编辑可修改17 成员数量当前限制为40 个,在本平台中我们设置为4 个。并且每一个成员信息由外键引用自“用户信息”表。比如现在创建了两个个微信群如下:外键约束和非空约束如下:由于当用户创建了一个微信群后要在“用户所在群” 表中显示出每个用户所在的群,因此需创建一个触发器。在此创建的trigger为“用户信息新增”。代码如下:v1.0 可编辑可修改18 5、“用户所在群”表存储了每个用户所在的群信。每个用户可根据此表查询所在群信息。 当一个微信群被创建后在 “用户所在群” 表中将自动显示用户所在群信息。6、“群聊消息记录表”记录了每个群的消息。也可以查询历史记录。比如在群“羽毛球部落”中的消息记录。v1.0 可编辑可修改19 为了使得用户在查询群历史消息时更加快速,创建索引。7、“公众号信息” 表记录了所有公众号的信息。 可以通过搜索公共号id 或名称来订阅公众号。8、“关注”表中,存储了每个用户订阅的公众号。v1.0 可编辑可修改20 9、“公众号消息记录”存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级美术下册教案-《第10课 宇宙之旅》教学设计人教版
- 场地租赁合同终止协议书包括
- 二零二五版农资互购买卖合同书范例
- 英语跨学科教学的创新策略与实践路径
- 全国浙教版信息技术八年级上册第三单元第11课《数据备份与加密》教学设计
- 七台河2024年黑龙江七台河市妇女联合会选调笔试历年参考题库附带答案详解
- 小学信息技术第二册 应用母版和插入背景音乐教学设计 北京版
- 小学西师大版反比例教案设计
- 安全急救小知识课件
- 妈码班育儿知识课件
- 学校食堂日管控周排查月调度样表
- 剑桥英语PET真题校园版
- 土方开挖及基坑支护工程安全监理实施细则
- 2023年新高考英语复习:读后续写专题练习10篇(含答案范文)
- 土木工程施工现场安全控制措施
- 农业银行反洗钱知识竞赛培训试题及答案
- JJF 1101-2019环境试验设备温度、湿度参数校准规范
- 第4章 毒作用机制毒作用影响因素
- GB/T 10295-2008绝热材料稳态热阻及有关特性的测定热流计法
- GA/T 1433-2017法庭科学语音同一认定技术规范
- 固体酸催化剂的发展及应用文献综述
评论
0/150
提交评论