1、 漂流瓶功能相当于随机的获取微信消息或者向微信用户随机的发送消息。 对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。 最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音等信息。 以上是对微信的部分功能的需求分析,现根据以上需求对微信数据库画出数据流图:第0层DFD:第1层DFD: 2、概念设计 在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及需要存储的信息。在概念设计中将进一步明确数据库设计所需实体,实体所具有的属性及实体之间的关系。 通过分析微信数据库平台所需实体主要有:用户信息、普通消息记录、公众号信息、公众号消息记录、微信群信息、群聊消息
2、记录、收藏信息、相册、朋友圈信息、联系人信息、附近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。这些实体分别对应于微信功能的不同模块。 在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、群聊消息记录和联系人信息这几个实体。 在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每个属性对应了数据库中的具体属性。 下图是根据对于微信数据库平台的需求分析做出的CDM,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。3、逻辑设计 由以上概念设计模型,我们可以获得以下逻辑数据模型(LDM)。 在LDM中对于CDM进行了进一步的细化和具体化,对其中的实
3、体之间的关系在逻辑上进一步的进行了明确。在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型(PDM)。通过PDM将具体显示数据库所需的表及其之间的关系。PDM如下图所示: 在PDM中显示了个表单之间的引用关系,其具体引用如下表:标间关系名称父表格子表格关注用户信息公众号信息发送公众号消息记录发送/接收普通消息记录发送消息群聊消息记录收藏收藏信息查看联系人信息用户存放摇一摇信息用户所在群微信群信息用户所属漂流瓶信息用户扫描获得扫一扫信息用户相册相册用户联系人群聊天记录联系人相册获取附近人信息本系统中使用的表单如下所示:1、用户信息表NameData TypeLengthP(主键)F(外
4、键)M(不可为空)用户IDchar(15)15X昵称char(20)20头像long binary二维码名片我的地址varchar(100)100性别char(5)5地区varchar(20)个性签名varchar(500)500登陆密码2、普通消息记录表PFM消息ID联系人ID内容varchar(5000)5,000发送时间datetime3、联系人表朋友ID备注名称标签4、公众号信息表公众号ID公众号名称char(40)405、公众号消息记录表公众消息ID公众消息订阅者varchar(8000)8,000timestamp6、关注表7、微信群信息表群ID群名称群二维码群成员varchar(
5、1000)1,0008、用户所在群表9、群聊消息记录表群聊消息ID发送人10、相册表相册ID存放时间11、收藏信息表收藏ID收藏时间收藏内容12、附近人信息表附近人ID距离integer13、摇一摇信息表摇一摇信息ID时间14、扫一扫信息表扫一扫信息ID15、漂流瓶信息表漂流瓶ID 对于微信数据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个表之间的引用关系,在接下来的物理设计中将使用逻辑设计中的表在具体数据库实现微信数据库平台的设计。4、物理设计 在此次物理实现微信数据库平台使用SQL Server 2008。实现简单的微信平台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台
6、对信息的发送接收及查看。 在此次物理实现是我们遵循3NF。 数据库设计如下图:1、向“用户信息”表添加记录,模拟微信在线用户。此次添加三个用户作为模拟的微信用户。用户基本信息如下:2、我们选取“小a”登陆微信,开始添加联系人。“联系人”表保存每个用户的联系人信息,这些联系人信息皆来自用户信息表。“小a”的联系人如下表:此表的创建过程如下:3、普通用户发送消息时,消息内容将存储在“普通消息记录”表中,如现在“小a”向“小b”发送一条消息,然后“小b”再回复一条。“小a”也向“小c”发送一条消息。其中表中的外键约束和默认值如下:在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a”和”小b“之间的聊天记录: 同样也可以在“普通消消息记录表”中实现删除消息记录。 在“普通消息记录”表中为了能使用户更快的查询
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1