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

下载本文档

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

文档简介

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

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

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

4、、收藏信息、相册、朋友圈信息、联系人信息、附近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。这些实体分别对应于微信功能的不同模块。在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、群聊消息记录和联系人信息这几个实体。在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每个属性对应了数据库中的具体属性。下图是根据对于微信数据库平台的需求分析做出的CDM,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。精心整理,用心做精品 24前心珀淮匪等M仲右淤体碓端巨耳力.1廿2后8S«-FIWrTlqi&M;li.:(j-Osos-N-

5、<B.riDu-»>d-lurgQn寸m口7口DC-声pTiniA01RJFnh*二口E-If尹口DMFTirrv;叱n'-t:口chwNW门中s20b*我'?nu.u-QSMe/sMHrMBT0厘叫GHSn雷3)a唐M<Mb.F:lirQ53)aT滋酒rtr-EbEnOTSfls驾?01书厂滞|«府加舟二拊惬.-口cmq&s&-oltRI口旦口2T-m立占«营一E了&sos一XDS/1III,:ll>4Ap-EduzM.93£调/画1IV。f球z力弓£2:一.sl:#MN_w9s

6、ssHS,堤春B-rrLllln廿|渣鬼片一口linlnqL:lp口事量中Tim<8乂界而9sflsKgJs用湘As1IT湖凹的裱便也特网>睇料的件V中端科片Ml一口0ri,Ba3ta&2:nell目蒯"西。僵巾伊t京口汴"哂<Einb-nU7POfl,nfiiLJ-o口-II-H.'.t-1'-lu甜”ft14网己9一口口色3IMP-i/噜$意。»9根KQ工i-XQOfI1IIU里讪I»咽?呼.号MB加考-WL僚里可品归lllHWln%chM-B.口巾Eu_malgr«caJhlwHgwrigbffi

7、号耳3$,。£-.-y<ar!3FmOJm-23ocNlab-eRDBu(aoj9集_"<0一*堪离e:质RM春旌悯白ghf解削件黜FitllltII.!rmjial&-glu8INurr-早山田Rs日)o»-den-g日丁mo.3_.20pwlan曲&m裾R9一封jJsnimb巾d-mracts-501-I一.JEDCFh4口raRry.&】6h9而:llrfrla一卜LqnhEgL*-sWHUcr昨93“料3一2。整v&nwtilmRaruEfs二0005q巴IhgT-n-ell>FlttjIBIJL£

8、;-IMHJ?口3_RWwstm的TiimeRonpbbQprad:酊目538耀融3GFS-ttRfc5母)ffl”用.171一引典史3三*fflfrw款一如工巾"里"口雷之寸3、nrJIB府修芯对.1-惮cLJargiu5_10_C口3'息-201OJSn-3_.3vr-mE而ns&ysItwQsq%巾p"-3m三、逻辑设计由以上概念设计模型,我们可以获得以下逻辑数据模型(LDM)DeisT-mc<,£mlr曰&%$有J.?ws41油m屐DllllFre“M#电dHBw_mqr3°ir!',l.h.sda

9、DoznEJBGtEn0«一小中对MHgill.l*UF.匚T-ipnAhHHNF'3cktrml”vrlrbnaflLractB一2。UFSs门hHactan-M-雪mynhwMtm一月"-K.-hR-n.40JupdEGCU口bPIHg055CMMV,&£"ala*U3二苍03KT孑wy4。,餐44品1符Q11111-1-gIJ而4Li&U胃ayl>4r.利等面品帚A1盘破举怵l»lmwl.h1B匕出山口*M二>32k='El出"巴三QlfrlnE恪竽a.'bk-cr:8l-ek

10、JM-SM®mlis淀”14ill而wm.tl.*IM机31片it:鼻二3*I7AoBnAM京国喟-cES&DutlarMafs-WKSXHAa附IC="西_nGHrrFFItoi电JJn口Guf£1IJ5"昌南Vann史ps3口y_g*0«K一一但R金“3J-CLUJFEm_"CTrtauilmTOHHSMnlMu学AT-w界事依耳作苴r事'/门通.l'aruEaEII-CJh-&=5.VS3A33OJHAQFn_2*=一1士一&-PMaT二?vy常ST。二曰.=OJhflfrnE."

11、;vrp炉立yuraldsr:-h-n*£3A_3而王寸巾号cur也出lx)-lllwwMlll却msl-n刑lluosraDsfflalinevnM-bL-R-IO-C9W«X4-.|¥强忸PIIMs.srbWM口¥dhsgr>.【3i-hax-K+口"13n/Q-n-.心本“uipl&nsd5-中由芮rlftEa0d件d,jtlra%-»u-pUJS9Ss-立寺第wrrff3HU-pUJHdnvR咻曲hL4hlMim杜Bl-ln门IIJafHafsciIInL?EI,I-UJn-明相Anol.35«B喟3t

12、*/j门haqlly国<*?I-*咆-TWE-w%国伊Jq-Sri-LSJFllb.E5&J&-r看I4£曲制孱二番;帛辞4也elkl&s记Mn.»口o-wrdlJ,4ALV*hbIk4asd.&3.寓0口-<阜&Frt-1£ac-D备pT-2在LDM中对于CDM进行了进一步的细化和具体化,对其中的实体之间的关系在逻辑上进一步的进行了明确。在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型(PDM)。通过PDM将具体显示数据库所需的表及其之间的关系。PDM如下图所示:岫款曲般源谭ilFH.Deh苫忑|?

13、|I-nehaf-somM&inpw«Jgrr:wo4一MIn与鹫口n0,一n二;方同d-.mt?iafTIPN|»Mfii口百111黑IJhelfii徘m1蚌lli!tn匚巨工p¥IACKIV他口dla.2学ariyJs&oIs*A?ss&is如也-.T国ImestirT口修腐广靠阻:-皿£5;w«?v川幼/一。44(81戏炸4Rd-.m-H口胃pufIft-C3H12KKMIJaIItI.t憎lljjB.l!ht%&ML”rp悯*扁HillHI梏口¥tw出uil¥一pr励一口当支201卅u

14、口吉3一¥洋MhN.msa-痔利占足立土30菱。E刀.皿徇AM广盛汨amL11出:dlL111:nla.IH口已即产尸»*A*.dTarl期Is看国is&evelrIHI1pfl醇«!,,aRw1r1ng.含F9百寻一言3YsrwffrFICOO.H:!»-;二&U-Q,2W*5制餐M.T&lii!射*.*附橘3宜)世H隹r£营)玲III厢脐.苗令二K>rJ小M.上技三出博宣63已.1津承瞪后it喳*在PDM中显示了个表单之间的引用关系,其具体引用如下表:标向关系名称父表格子表格关注用户信息关注关注公众号信息关注发

15、送公众号信息公众号消息记录发送/接收用户信息普通消息记录发送消息用户信息群聊消息记录收藏用户信息收藏信息查看联系人信息普通消息记录用户存放用户信息摇信息用户所在群用户信息用户所在群用户所在群微信群信息用户所在群用户所属用户信息漂流瓶信息用户扫寸而获得用户信息扫信息用户相册用户信息相册用户联系人用户信息联系人信息群聊天记录微信群信息群聊消息记录联系人相册联系人信息相册状取用户信息附近人信息本系统中使用的表单如下所示:1、用户信息表NameDataTypeLengthP(主键)F(外键)M(/、口为空)用户IDchar(15)15XX昵称char(20)20X头像longbinary二维码名片lo

16、ngbinaryX我的地址1varchar(100)100性别char(5)5X地区varchar(20)20X个性签名varchar(500)500登陆密码|varchar(20)20X2、普通消息记录表NameDataTypeLengthfrFM消息IDchar(20)20XX联系人IDchar(15)15X用户IDchar(15)15X内容varchar(5000)5,000X"送时间datetimeX3、联系人表NameDataTypeLength1FM朋友IDchar(20)20XX用户ID一char(15)15X备注名称char(20)20X标签varchar(20)20

17、4、公众号信息表NameDataTypeLengthPFM公众号IDchar(20)20XX公众号名称(:har(40)40X5、公众号消息记录表NameDataTypeLengthPFM公众消息IDchar(20)20XX公众号IDchar(20)20X公众消息varchar(5000)5,000X订阅者varchar(8000)8,000X发送时间timestampX6、关注表NameDataTypeLengthPFM用户IDchar(15)15XXX公众号IDchar(20)20XXX7、微信群信息表NameDataTypeLengthPFM群IDchar(20)20XX群名称char(

18、20)20X群二维码longbinaryX群成员varchar(1000)1,000X8、用户所在群表NameDataTypeLengthPFM用户IDchar(15)15XXX群IDchar(20)20XXX9、群聊消息记录表NameDataTypeLengthPFM群聊消息IDchar(20)20XX群IDchar(20)20X发送人char(20)20X发送时间timestampX内容varchar(5000)5,000X10、相册表NameDataTypeLengthPFM相册IDchar(20)20XX用户IDchar(15)15X联系人IDchar(20)20X存放时间timest

19、ampX内容varchar(5000)5,000X11、收藏信息表NameDataTypeLengthPFM收藏IDchar(20)20XX用户IDchar(15)15X收藏时间timestamp收藏内容varchar(8000)8,00012、附近人信息表NameDataTypeLengthPFM附近人IDchar(20)20XX用户IDchar(15)15X昵称char(20)20X距离integer性别char(5)5地区varchar(20)20个性签名varchar(500)50013、摇一摇信息表NameDataTypeLengthPFM摇信息IDchar(20)20XX用户IDc

20、har(15)15X时间timestamp内容varchar(5000)5,00014、扫一扫信息表NameDataTypeLengthPFM扫信息IDchar(20)20XX用户IDchar(15)15X时间timestamp内容varchar(5000)5,000X15、漂流瓶信息表NameDataTypeLengthPFM漂流瓶IDchar(20)20XX用户IDchar(15)15X内容varchar(5000)5,000X对于微信数据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个表之间的引用关系,在接下来的物理设计中将使用逻辑设计中的表在具体数据库实现微信数据库平台的设计。四

21、、物理设计在此次物理实现微信数据库平台使用SQLServer2008。实现简单的微信平台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台对信息的发送接收及查看。在此次物理实现是我们遵循3NE数据库设计如下图:ggm平台+数据库关案圉日口素+)片速干j曲口附近人信息3口此口,公众号信息3,j业。关注里3dboKMA,:C匕二,涛流,瓶肯三引二I此口,普幽息息记录闭_J此0奉甄消息记录+)3北口,扫一H信息3_dbQ收藏信息,0Tb»,高晡群信息+1dbci,指明db口授T信息田二此口用户所在群1_jdbcu用户信息ifl_j视图1、向“用户信息”表添加记录,模拟微信在线用户。

22、此次添加三个用户作为模拟的微信用户。用户基本信息如下:日3dbc?.用户信息日到f用户2(PK;char(15),notnull)UJ昵称(char(201notnull)国头像(binarytlLnull)H二ift引名片fbinaryCl),notnull)(yarchar(100)(null)Htm(diar(51notnull)国地区(var<har(20)»notnull)S个性名(varchar(500),nullE登肚圭天(varchar(20Lnotnull)2、我们选取“小a”登陆微信,开始添加联系人。“联系人”表保存每个用户的联系人信息,这些联系人信息皆来自

23、用户信息表。“小a”的联系人如下表:JWD用户朋友者在名标签1奥31owi哪月同学2商厂OMINULLNULL此表的创建过程如下:用目明标ID char HB) nst noil fchax 20iCQZift rairt p±l pxiznary匚口口3匕二国兀。 fHl foreign scmatraiiit: f c? f ar&i grnE强友皿用户工也近了(两次工口1匚工氏工君口二 心口.用户喑息 用户1D * tayf用户口3> »£anncu dbo.用户程息t角户工口卜altec cable abe .廿通梢息记云BQ1 茨送.时-

24、default3、普通用户发送消息时,消息内容将存储在“普通消息记录”表中,如现在“小a”向“小”发送一条消息,然后“小b”再回复一条。“/伯”也向“小”发送一条消dbd普阖境记是39日口歹y屋(PK,ch5r20jrnetnull)?联林【口(FK.char(151nulD?用白ID(FRchar(15)rnull)闻内容CrarcharDOOInotnull)国魅群时ifflfdatetim比notnull_krli消息旧联系人10用户ID内音发送时同1i00000100020M1T午5点去球场踢球20154)5-1011:35:32040200000200010002可以,下午球场见20

25、105-101T3617207300000300030OT1你好201&45-10J2:5B:1£,fl3a其中表中的外键约束和默认值如下:麟系,工工serereRcea,g口,用户信息 用户二口 (M户DQ laBK&flKS丑-用户信1 i用户二豆工3匚c皿”3c.荀酬肖目记拿事"foieioniceynitertehleezho.普通梢息记录eddczzmatrEintzkForeign在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a”和"小b”之间的聊天记录:I-select画容,发送时同fioir崛澧-油七工任联系人装

26、.二二I10001*0002*)andint'OQOl'F»C<J02*<|阴期结果占消息J5._._皮诺时间1|-12015-051011:35:32040viiaiiuBiiiuiaiii*iiiajhimamiJ*2可以,下午球场见2015gl011茹17.207同样也可以在“普通消消息记录表”中实现删除消息记录。在“普通消息记录”表中为了能使用户更快的查询自己的消息记录,这里创建了索引。createindex用户快速查询记录on此口.昔通梢息记录1用户工34、“微信群信息”表中记录了所有用户创建的微信群的信息。由于在微信中群成员数量当前限制为40个

27、,在本平台中我们设置为4个。并且每一个成员信息由外键引用自“用户信息”表。比如现在创建了两个个微信群如下:db。络信舒信息口列?韵D(PK,匚融3),notnull)ffl群g/(charts,notnullI)囿群(binary(llnotnull)?成员JL(FK,char(15),notnull)中成员2(FK.匚harQ3.null)f成员3(FK,char(15),nullf成品4(FK.char(151null)国胆回的束匕i_J脏发器四用户能信息新增&z番mi群ID群名称群二雄四成员1成员2成员3成员4IIMIMtd|100001j习用$球部落CbcBFDW1OQOQW0

28、3NULL2一而而足小球部落EBFMCI0002MULLHULL外键约束和非空约束如下:alicer column 1 60dl ccinstrdlnt s 1 odd Rnmaiiit g3f2 厚己di ccnHr二1二t二丁三 三 me ffzrurrsizt sy Jdlzar CBblf 餐It亡二 t flblr alcz sible slier ;加二七cnir(IB! nor null msgn,成员 foreign key 哎7 roreidTL kev 成色? *or exqney 曲 弓,二gfmrknjCWF rfe rencFr references reSerens

29、erdbo dbo.=二,三 5.信信信信臼户户户用闰月|用口 口 口口X T I I户户户户引书用用由于当用户创建了一个微信群后要在“用户所在群”表中显示出每个用户所在的群,因此需创建一个触发器。在此创建的trigger为“用户信息新增”。代码如下:口%1再信平台】GO/0D二度口I】izigaer亚工JkI用户群d富良,而增SocipcIACXO5/W/,2Q1&5ETMr3T_WULLSOKSETB”E也工二£打工FH.RQXQDE工豆Rtrigger业=>J用户群信息新潮二皿小微,辎信息】工8工9自工1taatiedar-中4门加clohar10)rlidcha

30、r113)P§cy3Idctiir15rylldchar15f9ly41dchai;131ele-GtHQUoid-群TD.ScyliJ成员Lr&cy2id"成员2f9cy3id=,十包cy4i£frcurinsertedLfgCYllCl19EX3ZDUllE«giniuxtinto*口,用户所在群用户1匚群工口;卡鼻二w*&-箝1T,耨.|1i日)endX£§cy2idisnsznulltegin.indertinto处口,用户所在等用户1口7群工匚valursJrrjnidjend1.£Cc'S

31、ld上:i_.iiu.ll.begininaertmt;但.用户篇在群用户I口*群口:v0二u:33cy3i.lr电冷dir;小;1.-x|:11beginxuaextiiitz:dbo用户所在群用户1J群uvaJ.1123207"必二Miun工d1Len<l5、“用户所在群”表存储了每个用户所在的群信。每个用户可根据此表查询所在群信息。当一个微信群被创建后在“用户所在群”表中将自动显示用户所在群信dmdb口庠户所在壁日口列?用户力(PRF&charflS),notnull)?章(PIC,F兄charpOLnotnull用户1口群IDpji'MIIIMiailU

32、ii0001moioimroom()14miM00250002M0026、“群聊消息记录表”记录了每个群的消息。也可以查询历史记录。比如在群“羽毛球部落”中的消息记录。Ir.3db。隼霞港思记录日口列?泄身ID(PKrchar(20),notnull)f群ID(FK,char(201null)国发送人(char(20)(notnull)圉内容(varchar(5(KX)Pnolnull)ffl发溺1间(smalldatetime,nulb- Jkl群峰肖息ID群ID发送人内容发送时间1i D0M000OT1 it,jOOMI小白明天去打羽毛球2015-05-1015:48:0020DNM000

33、02OOMI小b下午去20154)6-10 1S4B0Q300X)0000030OTQ1小c可以201X1410 15:48004KMDOtXHMD0M1小£下午3点20151015:50:00为了使得用户在查询群历史消息时更加快速,创建索引createindex群消息快速全询cndt7、“公众号信息”表记录了所有公众号的信息。来订阅公众号。0群聊梢息记录f群叫|可以通过搜索公共号ID或名称日dbd公众号信息日口列?公众号4。(PICcharlnotnullJ公众骂名祢(char(40)rnotnJIJ8、“关注”表中,存储了每个用户订阅的公众号。3口dbd关注S?用户ID(PK,FK.char(15),rotnull)?公台ID户F£char(2JLnotnull)_r_8krti消素二第用户心公众号IDi;瓯jown2 、磁.i30001000240(XM9、“公众

温馨提示

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

评论

0/150

提交评论