版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微信数据库分析与设计一、需求分析微信作为当前的主要即时通讯工具之一,有着广泛的应用。其主要的功能是 实现即时通信,这也是微信的核心功能。此外还有查看朋友圈动态、搜索好友、 管理个人信息、建立用户自己的相册、收藏功能、摇一摇、搜索附近的人、购物、 游戏等功能。此次对于微信平台的数据库设计主要对部分需要微信平台提供存储 信息功能进行需求分析及设计。以下将对微信平台的主要需求做简要的分析并且 根据分析做出数据流图使得对于微信平台数据库的设计有更好的理解。微信的通信主要包括与微信好友进行相互通信,这其中通信内容包括文字、 语音、图片及视频。当用户订阅了公众号之后,会接收公众号发送的消息并且也 可向公众
2、号发信息或许其提供的信息。微信通信功能的另一个主要方面是实现群聊。用户可以加入一个微信群进行 群。另一方面用户也可以选择自己的联系人进行群聊。微信中通讯录实现了保存用户联系人的目的,并且订阅的公众号也保存于通 讯录中,并且在通讯录中可以设定标签来为联系人分组。微信朋友圈保存好友发送的与朋友共享的消息,其内容可为文字、图片、视 频。在朋友圈中可以设定权限使得不同权限的用户查看的内容不一样。摇一摇功能可以获取同一时刻一起摇动手机的用户,并且暂存于微信中。附近的人功能可以识别在一定范围内的微信用户,并且将获得的用户信息也 暂存在微信中,对于识别附近的用户可以设定具体的条件来扫描。漂流瓶功能相当于随机
3、的获取微信消息或者向微信用户随机的发送消息。对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。 最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音 等信息。以上是对微信的部分功能的需求分析,现根据以上需求对微信数据库画出数 据流图:第0层DFD第1层DFD :、概念设计在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及 需要存储的信息。在概念设计中将进一步明确数据库设计所需实体,实体所具有的属性及实体之间的关系。通过分析微信数据库平台所需实体主要有:用户信息、普通消息记录、公众 号信息、公众号消息记录、微信群信息、群聊消息记录、收藏信息、相册、朋友
4、 圈信息、联系人信息、附近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。这 些实体分别对应于微信功能的不同模块。在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、 群聊消息记录和联系人信息这几个实体。在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每 个属性对应了数据库中的具体属性。下图是根据对于微信数据库平台的需求分析做出的CDM,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。/S JLZJ2 发蛍人 发进月窖 捷送另何 o卉论人O评住K2S O评论疗何nxHG!KtCtai2Q)Charscten (20iVaroblc chor
5、octsn (6000) Cate & Tinx:Chaf&cten (20,)Wwbl(100)Cate M Time# fciLLIDOo tt*j o tt(Xo 个tt$E眄辽人情息Cnfifdct&nl2Q;CnoroctGr: (20IrtegetCnardders (6) Vwrigble(201Vrioble cnoroatcr: (600)5-51S$ 亘一鱼運MIC C3a:Urs【20)o 疗倚Dt 6 Tinw刃务/sriade characters (50C0:(&OOCV可户佬Characters -5)咒称 JQ、 o吳H二细卞攵片 o衣的趟如 性别堆区 O冷垃乞
6、Charaetcrfx 20) Cbcraciers 20) image (100) imeic(100)Vorisblc haractcfs 100Craraaers6Variable 3har3ctefs 20) Variable 出aradac M0) Vbriabl shara 20)铃 ISSIC6oro2Ur& (20巧寄VatidUe 63Clt 20)Charaae-s 20) Dare & T meVariobIq sharaoRQff: (SCO),岌迪灣是II丿【I一feiQwipieChMacrfi (2C) l-nae 100i Variaok characters
7、(1000)# 咆兰QCFiareU-o ;20)衫攻野匱Ctt 4 Firn SSVurmbk chsrActn (5000)讶戶联克人Y公众弓IS电含寻ID Charades 20)公众寻乞務Chorads 40)8 亘2JD A畫友人为存-芟鱼FTP)公众巾.邑ID 复建公A好名豕 公众诵息才S:老2tM9tW6acters (201Cnafftrt*f0Tta-B3 _gd Mrfl-.2lvffluefiKnynflas m&co-誥*Bnkc e4i毎CT賣吕告g右id斗.!#暨肾帚勺口 JefLyos q 虫祥益 Flep-TWi5c0&i*-1 i1師ill卅H la r ;,
8、J| iI3bL*T勺 tiiq9;hi3Fy耳DHL4.Asw* Ff賈!一皆一 tJUulr 耳.l出 0 sss詁而沪Jd nu*.匚 l.h!1叫.3 s-cslitRsfl.IIFUi稱刃用I 川IHJ-foefi 叮7- m0 Odj 展一exi.吕 CMs 慚 T JDs-ru!CHLractin; -“!吕Iki!I注出蜀徘战a两*皿苏町琦Mi;別寫善Ch 巾 rsb-lF-8o-ssrmGMHll10 VMaltsle Lr&r 耶 5e S 呂J-i-f 二; -y3 -!-二:r.-.L? 一.1JM 口 -8-t.H-w 宀”一5) 3rft霍ilcl 乔女 .ss _
9、J3DG Q -Frf 口I PSS43 s PJUS&aKjo _vfioa8 BVKrrpblMi gIDFwM-5 -S0O-Dsrll. H-Jh*L心.wrftEi 席蛊匚* Ms&ss瞭衣常r.WWE在LDM中对于CDM进行了进一步的细化和具体化,对其中的实体之间的关系在逻辑上 进一步的进行了明确。在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型PDM如下图所示:(PDM )。通过PDM将具体显示数据库所需的表及其之间的关系。afim.wlols*”土hFiM:1Q5 nrnlmMi.ob J 嘗 .=u.m-q 琲 ”Mrf3E.S3-3 酣 sl.i,-1alhNh
10、aIJIlolgila*laliyll臺悴r昭IMFnmrn空 wlv u ofisAJP1 別ochM-al Asv 嫩lA-k坤:irt虫 Twplu址rt吧0s净uffitl摘叩 kng bhleMBAiNE近 对M7IIFW科aw-I. cw dlaZL Of-K-crhlllymaETris.OM.-issYai刚 u m*jffi nd i;I bi1 pInrsi-.1褊,田djkn$v!一a-Elllp日.耳曼色 w?w严件 htafcyj s if -M. kV-Mi1tl 窟 6F:UF iiii jk 皿 infw曲Liirli曲 IM 曲艸IWpl-JilmltErIB
11、IWPIulgllllf-*Iir砖畀|41诣孫 r:-r?hl)l-KJFljiKgIA舊 呼浄-1)1跖彌蓉“卷h律浄期IjEIrtil*朴白旧InITlblry E. s許呻0fnMJ 鸟叮 忧耳0忡4|1&-1?口甘卡0HaEttx suirt iffab_H4J.負右二8空在PDM中显示了个表单之间的引用关系,其具体引用如下表:标间关系名称父表格子表格关注用户信息关注关注公众号信息关注发送公众号信息公众号消息记录发送/接收用户信息普通消息记录发送消息用户信息群聊消息记录收藏用户信息收藏信息查看:联系人信息普通消息记录用户存放用户信息摇一摇信息用户所在群用户信息用户所在群用户所在群:微
12、信群信息用户所在群用户所属用户信息漂流瓶信息用户扫描获得用户信息扫一扫信息用户相册用户信息相册用户联系人用户信息联系人信息群聊天记录微信群信息群聊消息记录联系人相册:联系人信息相册获取用户信息附近人信息本系统中使用的表单如下所示:1、用户信息表NameData TypeLen gthp (主键)F (外键)M (不可为空)1用户IDchar(15)15XX昵称char(20)20X头像long binary二维码名片1ong binaryX我的地址varchar(100)100性别char(5)5X地区varchar(20)20X个性签名varchar(500)500登陆密码varchar(2
13、0)20X2、普通消息记录表rNameData TypeLen gth PFM消息IDchar(20)20XX联系人IDchar(15)15X用户IDchar(15)15X内容varchar(5000)5,000X发送时间datetimeX3、联系人表NameData TypeLen gth PJFM朋友IDchar(20)20XX用户ID char(15)15X备注名称char(20)20X标签varchar(20)204、公众号信息表- NameData TypeLen gthPFM公众号IDchar(20)20XX公众号名称(:har(40)40X5、公众号消息记录表NameData T
14、ypeLen gthPFM公众消息IDchar(20)20XX公众号IDchar(20)20X公众消息varchar(5000) 5,000X订阅者varchar(8000) 8,000X发送时间timestampX6关注表NameData TypeLen gthPFM用户IDchar(15)15XXX公众号IDchar(20)20XXX7、微信群信息表NameData TypeLen gthPFM群IDchar(20)20XX群名称char(20)20X群二维码long binaryX群成员varchar(1000) 1,000X8、用户所在群表NameData TypeLen gthPFM
15、用户IDchar(15)15XXX群IDchar(20)20XXX9、群聊消息记录表NameData TypeLen gthPFM群聊消息ID :har(20)20XX群IDchar(20)20X发送人char(20)20X发送时间timestampX内容varchar(5000) 5,000X10、相册表NameData TypeLen gthPFM相册IDchar(20)20XX用户IDchar(15)15X联系人IDchar(20)20X存放时间timestampX内容varchar(5000) 5,()00X11、收藏信息表-NameData TypeLen gthPFM收藏IDcha
16、r(20)20XX用户IDchar(15)15X收藏时间timestamp收藏内容varchar(8000)8,00012、附近人信息表NameData TypeLen gthPFM附近人IDchar(20)20XX用户IDchar(15)15X昵称char(20)20X距离in teger性别char(5)5地区varchar(20)20个性签名varchar(500)50013、摇一摇信息表NameData TypeLen gthPFM摇一摇信息IDchar(20)20XX用户IDchar(15)15X时间timestamp内容varchar(5000) 5,00014、扫一扫信息表Nam
17、eData TypeLen gthPFM扫一扫信息IDchar(20)20XX用户IDchar(15)15X时间timestamp内容varchar(5000) 5,000X15、漂流瓶信息表NameData TypeLen gthPFM漂流瓶IDchar(20)20XX用户IDchar(15)15X内容varchar(5000) 5,000X对于微信数据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个 表之间的引用关系,在接下来的物理设计中将使用逻辑设计中的表在具体数据库 实现微信数据库平台的设计。四、物理设计在此次物理实现微信数据库平台使用SQL Server 2008。实现简单的微
18、信平台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台对信息的发 送接收及查看。在此次物理实现是我们遵循3NF数据库设计如下图: J镰信平台E LJ毅据库左圍 匚口表S二萦焼表国 dbo.pffiEABBS卫dbcr公众寻滴息记录S 3 db口公兪号信息S 72 dbo.iS db屋盞人 +1 口 Kbci標氏?區信息 S 日bm音區消息记录 0二I已兄雜暮消慝记录 S二日bm扫一H信息 13 W吕命丄斶借悬 S 曲口微信群信息 S 自 dbe.T 3 dbcij捱信息 0旨dbeffi户所在寿 2 dboi户信息i+ l_j 飓1、向“用户信息”表添加记录,模拟微信在线用户。此次添
19、加三个用户作为模 拟的微信用户。用户基本信息如下:Fi二拒户信息日23列f 用户ID (PK; diartl5L not null)B 炯称(char(20), not null)E 头低(binsryflL rull)H 二码名片(binaryfU not null)3 找迪地址 tyarchar(lDO)f null)H 性别(dur(5), not null)E 地区(varhar(20 not null)国 个准鑒宕(varchar(500), null)E 聲就步冯(varchar(20L not null)2、我们选取“小a”登陆微信,开始添加联系人。“联系人”表保存每个用户 的联
20、系人信息,这些联系人信息皆来自用户信息表。“小a”的联系人如下表:一flWD-WB阳户ID朋友音注容标签12| (XX)20001日删同学0M3OKINULLNULL此表的创建过程如下:cr=atc table耗奚人朋友门chQr 1not null用户 ID char(1 I :i Ji 朋茨?注討帚20- f 标签 y ar char 2Q ) r constraint pU pEinary “Yf期友ID*用户TD 门 nstrirt fri foreigin teyrefTendbo. 月户信思用户 SGZitrair.t foreigr key (Jfj ID)dbd 同 户盲恳 用
21、戸 TD3、普通用户发送消息时,消息内容将存储在“普通消息记录”表中,如现在“小 a”向“小b”发送一条消息,然后“小b”再回复一条。“小a”也向“小c” 发送一条消息。EJ匚|歹* i肖副D (PKd chdr20 not null)?联至人【D (FK, char(15Jt nullj?用自【D FK, char(15r null)m 内客 varcharSCXKJJj not null_J 发送討闫(datetime, not null消息心联系人ID用户ID內奢发送时囘iOOOWI j0002下牛5点去球场蹑拣2015-05-1C 11 35:32 D4C0000020D&1畑可以,下
22、午球场见2016-010 11:3G:172O700000300030W1你好2015-05-1C 1253:16.233其中表中的外键约束和默认值如下:血匚旨鱼Y肖唱i己世 直弧 conTramt 二EK toxeian icey |矣 二工匸 xeie:rer:cea ol&q. 用户倍息幷户二D alter tteble dhn HiS诗耳记長z cnstraint.三上W foreign key 旳亡I 二百:ref er-nce- izba 用户彳言=. 用巴二口bIwe cable 11甘通f肖息记录 Bdid 聂送时间 dae&ine z- mill default c*tdat
23、.e(在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a”和”小b “之间的聊天记录:L.駝Ct应直发送BdjH血cM诵逍息记录氓 SeMAi? W(0001 *0002*) and BTD inf 0001 F *0002*)结麋帰消息J5_ _._发医时间1 卒磺丢殊琉殊1 2015-0510 11:35:32 040 4“a“ui“i i&iii iiui iiudiiiauiiHiiMMiiiimiii iJ*2 可如 下午玮场兄20151011:36:17207同样也可以在“普通消消息记录表”中实现删除消息记录。在“普通消息记录”表中为了能使用户更快的查询自己的消息
24、记录,这里创建了索引。create index用户快速查询记录on dto.j|消息记录用户TD)4、“微信群信息”表中记录了所有用户创建的微信群的信息。由于在微信中群 成员数量当前限制为40个,在本平台中我们设置为4个。并且每一个成员信息 由外键引用自“用户信息”表。比如现在创建了两个个微信群如下:dbo信辟信息0 曰Lj列l 髀ID (PK, chrf2D), not null) B SCcharOj, not null)3 群二维码(binaryflX not null)f成员丄(FK,charCLS).not null)*成员2(FKPchar(15).null)fOS3(F20) r
25、lid char i 13;i F 4cy3 id chix 丄 5 , cylld char IB: f 9 _: y4 L d char ;13r牝 1 ect Qurild-群 TD. *cyli 4月;貝 I r ScyS i4成员2* PcySitiT茨員影鮭y弓id-l.j;A frcwr inaertedL.f I geTlld 19 EX3: nulltginintQ dfera ”用户所在群用户 HD 計 5 V#:W- J J - i. Sq-=nid-zti?cy2丄口 is nsz nulltegin.inacTt into dbo.月户序在密 用口1口-群工上 val
26、ue1 s Jcy?L.dr JiTJnid; endr i ScySld 亠三 ei_ xjdllbeginmacst latz dbn同户护ft群 用1C. SJ11 %palua ?cyJLlr *qunid 切air i 弘、Tim - - :.a | :i】beginJ-nsert U)t!2 ati.牙户序jL券 Ffl - 1C 群丄- va_iiebdLinxdL enl5、“用户所在群”表存储了每个用户所在的群信。每个用户可根据此表查询所 在群信息。当一个微信群被创建后在“用户所在群”表中将自动显示用户所在群 信息。曰3 d歸卢所在群日口列g 用=ID (PK FQ char
27、(15). not nulll)g 解D (PIC, FK, charOL not nu町-J旳木 _记尽丄用户ID群IDpji 00011 M001(NX)2M001XBW001fcij K)1处企号IDj QOT12000200023OKI(W40005(KXM9、“公众号消息记录”存储公众号为订阅者发送的消息E二d bo,公盘号港息记眾日口列?公命輻ID (PK chM20), net null) 公众号ID (FK, charOX null_2 公众雀慝vnirhar(5D001 not null)J间 ftimestamp, not null)12公处消息ID公介号ID眩条消息发送时间OOO&DODM 0M2WOODOD&6 0004廉网建设课程计划215415*1016:17:0020155-101G:1S:閒2O154&1016:13:0010、其余各表分别存储每个用户在微信中的信息, 通过外键引用来确定每个表中 各个用户的信息,其具体结构如下:d詁bs附近人信息日口列、?附匠人【D (PK, charlO), not null f 用AD(FKd char(15
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智能语音识别框架合作协议3篇
- 2025年度宠物电商直播带货合作协议范本4篇
- 二零二五年度多功能大棚设计与建造合同协议4篇
- 2025年度电子商务平台用户服务协议4篇
- 二零二五版全铝家居铝合金门窗销售代理协议4篇
- 2025年度苗木育种研发合作协议4篇
- 二零二五年度大型公共建筑大理石装饰安装合同范本4篇
- 二零二五年度快至当天出具履约保函代办服务协议3篇
- 二零二五年度房地产投资股权代持解除协议4篇
- 二零二五年度玻璃隔断行业绿色供应链体系建设合同3篇
- 商场电气设备维护劳务合同
- 油气田智能优化设计-洞察分析
- 陕西2020-2024年中考英语五年真题汇编学生版-专题09 阅读七选五
- 砖混结构基础加固技术方案
- 助产专业的职业生涯规划
- 2023年国家公务员录用考试《行测》真题(行政执法)及答案解析
- 新《国有企业管理人员处分条例》知识竞赛考试题库500题(含答案)
- 骨质疏松护理
- 《闻泰科技并购安世半导体的风险应对案例探析》8200字(论文)
- 肝断面引流管护理
- 医疗器械销售合同模板
评论
0/150
提交评论