微信数据库分析与设计_第1页
微信数据库分析与设计_第2页
微信数据库分析与设计_第3页
微信数据库分析与设计_第4页
微信数据库分析与设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微信数据库分析与设计 一、需求分析 微信作为当前的主要即时通讯工具之一,有着广泛的应用。其主要的功能是 实现即时通信,这也是微信的核心功能。此外还有查看朋友圈动态、搜索好友、 管理个人信息、建立用户自己的相册、收藏功能、摇一摇、搜索附近的人、购物、 游戏等功能。此次对于微信平台的数据库设计主要对部分需要微信平台提供存储 信息功能进行需求分析及设计。以下将对微信平台的主要需求做简要的分析并且 根据分析做岀数据流图使得对于微信平台数据库的设计有更好的理解。 微信的通信主要包括与微信好友进行相互通信,这其中通信内容包括文字、 语音、图片及视频。当用户订阅了公众号之后,会接收公众号发送的消息并且也 可

2、向公众号发信息或许其提供的信息。 微信通信功能的另一个主要方面是实现群聊。用户可以加入一个微信群进行 群。另一方面用户也可以选择自己的联系人进行群聊。 微信中通讯录实现了保存用户联系人的U的,并且订阅的公众号也保存于通 讯录中,并且在通讯录中可以设定标签来为联系人分组。 微信朋友圈保存好友发送的与朋友共享的消息,其内容可为文字、图片、视 频。在朋友圈中可以设定权限使得不同权限的用户查看的内容不一样。 摇一摇功能可以获取同一时刻一起摇动手机的用户,并且暂存于微信中。 附近的人功能可以识别在一定范圉内的微信用户,并且将获得的用户信息也 暂存在微信中,对于识别附近的用户可以设定具体的条件来扫描。 漂

3、流瓶功能相当于随机的获取微信消息或者向微信用户随机的发送消息。 对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。 最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音 等信息。 必是对微信的部分功能的需求分析,现根据以上需求对微信数据库画岀数 据流图: 第0层DFD: 第1层DFD: 二、概念设计 在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及 需要存储的信息。在概念设讣中将进一步明确数据库设讣所需实体,实体所具有 的属性及实体之间的关系。 通过分析微信数据库平台所需实体主要有:用户信息、普通消息记录、公众 号信息、公众号消息记录、微信群信息、

4、群聊消息记录、收藏信息、相册、朋友 圈信息、联系人信息、附近 人信息、漂流瓶信息、扫一扫信息、摇一摇信息。 这些实体分别对应于微信功能的不同模块。. 在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、 群聊消息记录和联系人信息这儿个实体。 在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每 个属性对应了数据库中的具体属性。 下图是根据对于微信数据库平台的需求分析做岀的CDM,通过此概念模型显 示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。 三、逻辑设计 由以上概念设计模型,我们可以获得以下逻辑数据模型(LDM)。 在LDM中对于CDM进行了进一步的

5、细化和具体化.对其中的实体之间的关系在逻辑上进一步的进行 了明确c在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型(PDM).通过PDM将具体 显示数据库所需的表及其之间的关系。PDM如下图所示: 在PDM中显示了个表单之间的引用关系,其具体引用如下表: 标间关系名称 父表格 子表格 关注 用户信息 关注 关注 公众号信息 关注 发送 公众号信息 公众号消息记录 发送/接收 用户信息 普通消息记录 发送消息 用户信息 群聊消息记录 收藏 用户信息 收藏信息 查看 联系人信息 普通消息记录 用户存放 用户信息 摇一摇信息 用户所在群 用户信息 用户所在群 用户所在群 微信群信息 用户

6、所在群 用户所属 用户信息 漂流瓶信息 用户扫描获得 用户信息 扫一扫信息 用户相册 用户信息 相册 用户联系人 用户信息 联系人信息 群聊天记录 微信群信息 群聊消息记录 联系人相册 联系人信息 相册 获取 用户信息 附近人信息 本系统中使用的表单如下所示: 1、用户信息表 Name Data Type Lengt h 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 地区 v

7、archar(20) 20 X 个性签名 varchar(500) 500 登陆密码 varchar(20) 20 X 2、普通消息记录表 M F Length P Data Type Name 消息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 Leng t h P F M 朋友ID char(20) 20 X X 用户ID char (15) 15 X 备注名称 char (20) 20 X

8、 标签 varchar(20) 20 4、公众号信息表 Name Data Type Lengt h P F M ID公众号 char(20) 20 X X 公众号名 称 char (40) 40 X 、公众号消息记录表5 Name Data Type Lengt p F M h 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 cha

9、r (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) 群聊消息

10、 20 X X 群ID char(20) 20 X 发送人 char(20) 20 X 发送时间 timestamp X 内容 varchar (5000) 5, 000 X 10、相册表 Name Data Type Length p F M 相册ID char(20) 20 X X 用户ID char (15) 15 X 联系人ID char (20) 20 X 存放时间 timestamp X 内容 varchar (5000 )5,000 X 、收藏信息表11 Name Data Type Length p F M 收藏ID char(20) 20 X X ID用户 char (15)

11、 15 X 收藏时间 timestamp 收藏内容 varchar(8000 ) & 000 、附近人信息表12 Name Data Type Length p F M 附近人ID char(20) 20 X X 用户ID char (15) 15 X 昵称 char (20) 20 X 距离 integer 性别 char (5) 5 地区 varchar (20) 20 个性签名 varchar (500) 500 13、摇一摇信息表 Name Data Type Length p F M 摇一摇信 息ID char(20) 20 X X 用户ID char (15) 15 X 时间 ti

12、mestamp 内容 varchar (5000 )5,000 14、扫一扫信息表 Name Data Type Length p F M 扫一扫信 息ID char(20) 20 X X ID用户 char (15) 15 X 时间 timestamp 内容 varchar(5000 )5,000 X 15、漂流瓶信息表 Name Data Type Length p F M ID漂流瓶 char(20) 20 X X ID用户 char (15) 15 X 内容 varchar(5000 )5,000 X 对于微信数据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个 表之间的引用关系

13、,在接下来的物理设计中将使用逻辑设计中的表在具体数据库 实现微信数据库平台的设计。 四、物理设计 在此次物理实现微信数据库平台使用SQL Server 2008。实现简单的微信平 台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台对信息的发 送接收及查看。 在此次物理实现是我们遵循3NFo 数据库设计如下图: 1、向“用户信息”表添加记录,模拟微信在线用户。此次添加三个用户作为模 拟的微信用户。用户基本信息如下: 2、我们选取“小a”登陆微信,开始添加联系人。“联系人”表保存每个用户的 联系人信息,这些联系人信息皆来自用户信息表。“小a”的联系人如下表: 此表的创建过程如下: 3、普

14、通用户发送消息时,消息内容将存储在“普通消息记录”表中,如现在“小 a”向“小b”发送一条消息,然后“小b”再回复一条。“小也向“小c”发 送一条消息。 其中表中的外键约束和默认值如下: 在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a” 和”小b “之间的聊天记录: 同样也可以在“普通消消息记录表”中实现删除消息记录。 在“普通消息记录”表中为了能使用户更快的查询自己的消息记录,这里创建 了索引。 4、“微信群信息”表中记录了所有用户创建的微信群的信息。山于在微信中群成 员数量当前限制为40个,在本平台中我们设置为4个。并且每一个成员信息由 外键引用自“用户信息”表。比如

15、现在创建了两个个微信群如下: 外键约束和非空约束如下: 由于、用户创建了一个微信群后要在“用户所在群表中显示出每个用户所在的群因此需创建一个触发 器。在此创建的trigger为“用户信息新増代码如下: 5、“用户所在群”表存储了每个用户所在的群信。每个用户可根据此表查询所在 群信息。当一个微信群被创建后在“用户所在群”表中将自动显示用户所在群信 息。 6、“群聊消息记录表”记录了每个群的消息。也可以查询历史记录。比如在群“羽 毛球部落”中的消息记录。 为了使得用户在查询群历史消息时更加快速,创建索引。 7、“公众号信息”表记录了所有公众号的信息。可以通过搜索公共号ID或名称 来订阅公众号。 8、“关注”表中,存储了每个用户订阅的公众

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论