下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微信数据库分析与设计一、需求分析微信作为当前的主要即时通讯工具之一,有着广泛的应用。其主要的功能是实现即时通信,这也是微信的核心功能。此外还有查看朋友圈动态、搜索好友、管理个人信息、建立用户自己的相册、收藏功能、摇一摇、搜索附近的人、购物、游戏等功能。此次对于微信平台的数据库设计主要对部分需要微信平台提供存储信息功能进行需求分析及设计。以下将对微信平台的主要需求做简要的分析并且根据分析做出数据流图使得对于微信平台数据库的设计有更好的理解。微信的通信主要包括与微信好友进行相互通信,这具信容包括文字、语音、图片及视频。当用户订阅了公众号之后,会接收公众号发送的消息并且也可向公众号发信息或许其提供的
2、信息。微信通信功能的另一个主要方面是实现群聊。用户可以加入一个微信群进行群。另一方面用户也可以选择自己的联系人进行群聊。微信讯录实现了保存用户联系人的目的,并且订阅的公众号也保存于通讯录中,并且在通讯录中可以设定标签来为联系人分组。微信朋友圈保存好友发送的与朋友共享的消息,其容可为文字、图片、视频。在朋友圈中可以设定权限使得不同权限的用户查看的容不一样。摇一摇功能可以获取同一时刻一起摇动手机的用户,并且暂存于微信中。附近的人功能可以识别在一定围的微信用户,并且将获得的用户信息也暂存在微信中,对于识别附近的用户可以设定具体的条件来扫描。漂流瓶功能相当于随机的获取微信消息或者向微信用户随机的发送消
3、息。对于个人信息的编辑,用户可以根据自身需要编辑一些所需的个人信息。最后在微信用户个人信息中有相册和收藏记录用户的照片和收藏的文字语音等信息。以上是对微信的部分功能的需求分析,现根据以上需求对微信数据库画出数据流图:第0层DFD发建书由】今遵刁户工更通电.第1层DFD:二、概念设计在第一步的需求分析中,我们了解了微信数据库平台设计中所需要的实体及需要存储的信息。在概念设计中将进一步明确数据库设计所需实体,实体所具有的属性及实体之间的关系。通过分析微信数据库平台所需实体主要有:用户信息、普通消息记录、公众号信息、公众号消息记录、微信群信息、群聊消息记录、收藏信息、相册、朋友圈信息、联系人信息、附
4、近人信息、漂流瓶信息、扫一扫信息、摇一摇信息。这些实体分别对应于微信功能的不同模块。在实现微信的通信功能主要是使用用户信息、普通消息记录、微信群信息、群聊消息记录和联系人信息这几个实体。在明确所需实体后根据实际需要对于每个实体设置符合实际情况的属性,每个属性对应了数据库中的具体属性。下图是根据对于微信数据库平台的需求分析做出的CDM,通过此概念模型显示数据库之间各实体之间的相互关系及各个实体所具有的实际属性。加l_l$68Q(OCOC:sjaosjeu3aiceuA(0001)3QBN3刊GS啤X(OOIeOetM3Z:(OS)J-MMO(OC)3g。Zrwpwtqo4K三g好工叁*丫3摹yg
5、g0T5V*这W尊二衣g52比14A(gg)aooojeqcoiqopc八amJL甘a(j(02s.aDjeM3(电3n.eq。(*?;8蜕白德盘3自4领黑Y3Q.%26昌力与二335WH.7w】eq(coooi)2usjsqaiqeiJEA0009)joroguo皂|qMSor)3P903)U9PBJBU0回收裆军段用屋.a小&sortOa(ooog)K9J9neiMAO的F=5-5看“去兴客0)3W,Q。02八(009:8PE8QsqeiJBA(CZ)sj9e.ejoaqueA3)310。2心(i)3W49(0,SPCWM3第才合3.(0J-spejbmo理的5asife“汽*公gwaw密
6、7广(OS)(ow)3PB-(02sjepejmpa|Q3iAQ)neiejo(00L5-O|q!AS0U8M|(00d,3ai(03)gpGRO(CC)sp即“回3口6打00031sj9e.eipapei/s/.2&.19N”i|J4c(ccw6og一一5i82-E(OCOg)3P83叫q/心合y.强uf/.口il.anx.(0ZJiq。!尺八芋三4十13)33ag*NMtAR今。(?)WPSJBO博玉Ofeui里三o(OC)3QCR9台K7HQE店刁OIT?之耳aw、:ww,3口节80。(0003aaip,1q。队(03)3QSJtg吗v式)CO9)RBOQpoiqojc02)5J5PSJ
7、91O2Z)3JMJtg三、逻辑设计由以上概念设计模型,我们可以获得以下逻辑数据模型(LDM)、*,网iix口划柿总嚼,地舟同。TlA町直落M螭广口心显名叫SscITEadsnR-hssr*库ilpLSnhwKtcnm产p,LJrr彳q口dunII.口科e3Hgofvbdabrasu-38Vn.Bfl内彳脂户产litl-ttn汴nIJlurailQr;kIM-龙Tcc蒿哥n.T.ftssQ-H4QGT&MM01853q干篦&2胃&yM落殳ed-HGUW曾-1矗il-.w怖单IWil咽Elrvu口neep钟。两冬o胃,二EriEsblenTKSSS83JIHAamIIt、“牌Ini-r;二:2二
8、1号15匈一口豆pgaraRB_曰妁y的皿,1FJU雷口周加“H-lllllrDsiswTintWMmMBJI(INRH7lil商如.r理!IS.Hllll-arlj&ufEINlllyctl*13一3百一百,.Ilnllll|一zrnHSts霄Ls,”l-l,r7序ckaJE.SLWrhlTwlmrsT9fea3M丁口号ukT*“山国116,用4,*nTw+F1井Q序抄部在声四着口r好财做c-iEBIREI-,?fia,a3OJhflaHhkJ*-ie*?oav-nllrqllD总Vsrat-巾diur-1Fs?CHaTEdBQh*PT11O-H-it号JJ火HTJKirTiMIH咋中瞅IH
9、厘yLEF,tfl-JqMutEEPBblbOJlLruasn.L5C0心-fllloff-v律序Le胃咽g_lr6一=|吊rE-nWBf*X4-“中口Blqu3)二(岂UiWunsc6bc_;.-I:-g卜钥中徘网h片由I/出n亘M咻国H/71曲门!2E-nLI-!-门T&-SU&Bjr!Q.?wys-书i-JSM-fc-.llin血帆Jfi哥三鼻M4Ji在LDM中对于CDM进行了进一步的细化和具体化,对其中的实体之间的关系在逻辑上进一步的进行了明确。在此基础上我们获得更加具体能直接反映数据库涉及的无理数据模型PDM如下图所示:(PDM)。通过PDM将具体显示数据库所需的表及其之间的关系。廉
10、京山s丁意),:FnFfhvvy-舞NbmKl5np法IBwEPrctlsrxlG)PFllhZJBHaWTJ号nrvs川*inbegislrmIMl冬*HH力有0”Hu-/理/*ffMtrmlyHn隼翰耳knjbh91V迎事止,varcharfl后It/2套*Rclftfiov孑靠M&s_d*KAW中lliavl小lh#lJLI闾慑1IIQ.III4itMlri蒙目M2rl:hlrtly片山-T与3rnnlu4nowihi15满JJI:;感八8nfo用Rl-JlmlwMr!由a.!sa.ifvJmeloab-naJ-L8Y她Ira口charfafllv1c。As国Be乎X手*lk?M1;Af
11、期)flEMhxSMOJMiifrJir+mtutmp青一rBIlacaanai簧”工修IFiIOW2OKA冲舟立Ff2Ml-CUK产Mwlr朋一nsHHrMAlll-1-1,I4MII1必翻纲X山也wrln1-今明.Afkjl1gapfMJIt-3OJ-用聊斜序ganu*kNTrirGhsll_20yMis6稀.;rr2)弹4巾hjar憎出IJJ一Cku一妗总他DEn碧ww静弁Mlllh中RGn-4与喉却CIW(!OMJ4因4-兽dwfajwo),SW4也H-noErnv在PDM中显示了个表单之间的引用关系,其具体引用如下表:标向关系名称父表格子表格关注用户信息关注关注公众号信息关注发送公众
12、号信息公众号消息记录发送/接收用户信息普通消息记录发送消息用户信息群聊消息记录收藏用户信息收藏信息查看联系人信息普通消息记录用户存放用户信息摇信息用户所在群用户信息用户所在群用户所在群微信群信息用户所在群用户所属用户信息漂流瓶信息用户扫寸而获得用户信息扫信息用户相册用户信息相册用户联系人用户信息联系人信息群聊天记录微信群信息群聊消息记录联系人相册联系人信息相册获取用户信息附近人信息本系统中使用的表单如下所示:1、用户信息表NameDataTypeLength1,(主键)F(外键)M(/、可为空)用户IDchar(15)15XX昵称char(20)20X头像longbinary二维码名片long
13、binaryX我的地址varchar(100)100性别char(5)5X地区varchar(20)20X个性签名varchar(500)500登陆密码varchar(20)20X2、普通消息记录表INameDataTypeLength1FM消息IDchar(20)20XX联系人IDchar(15)15X用户IDchar(15)15X容varchar(5000)5,000X发送时间datetimeX3、联系人表NameDataTypeLength1FM朋友IDchar(20)20XX用户IDchar(15)15X备注名称char(20)20X标签varchar(20)204、公众号信息表Nam
14、eDataTypeLengthPFM公众号IDchar(20)20XX公众号名称(char(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(20)20X群二维码l
15、ongbinaryX群成员varchar(1000)1,000X8、用户所在群表NameDataTypeLengthPFM用户IDchar(15)15XXX群IDchar(20)20XXX9、群聊消息记录表NameDataTypeLengthPFM群聊消息ID,char(20)20XX群IDchar(20)20X发送人char(20)20X发送时间timestampX容varchar(5000)5,000X10、相册表NameDataTypeLengthPFM相册IDchar(20)20XX用户IDchar(15)15X联系人IDchar(20)20X存放时间timestampX容varcha
16、r(5000)5,)00X11、收藏信息表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用户IDchar(15)15X时间t
17、imestamp容varchar(5000)5,000NameDataTypeLengthPFM4、扫一扫信、表iiiiNameDataTypeLengthPFM扫信息IDchar(20)20XX用户IDchar(15)15X时间timestamp容varchar(5000)5,000X15、漂流瓶信息表NameDataTypeLengthPFM漂流瓶IDchar(20)20XX用户IDchar(15)15X容varchar(5000)5,000X对于微信数据库平台的逻辑分析,明确了在具体是实现时所需的表及其各个表之间的引用关系,在接下来的物理设计中将使用逻辑设计中的表在具体数据库实现微信数据
18、库平台的设计。四、物理设计在此次物理实现微信数据库平台使用SQLServer2008。实现简单的微信平台的数据库,通过在数据库表中插入数据或查看数据来表现微信平台对信息的发送接收及查看。在此次物理实现是我们遵循3NF数据库设计如下图:日J费信平告E口数据库关系圉E口表S二堂娩表Sdbo附近人信息Smdba公众号消息记录SMdba公余号信息a口曲口,关注S口北。陵盍人+1口db口落疣病信息S北*普通消息记录国二I此口整装消息记录s3北0扫一H信息国NdbaL;!藏信息S3此口徵信群信息SN柜员二曲口提一提信息国Ndba用户所在群2dba用户信息i+LJ睡1、向“用户信息”表添加记录,模拟微信在线
19、用户。此次添加三个用户作为模拟的微信用户。用户基本信息如下:dbd用户信息日到f用户ID(PK.char(15Lnetnull)fl昵称(charf201notnull)圉头停(binsrytl,null)B二i隹科名片的ndryCL).notnull)国我渤沏tvarcbar(100Knull)国ttftlchar(5LnetnullE地区(varchar(20)tnotnull)E个性魅名uarchar(500),null)E登时玄毛varchar(20J,rotnull)2、我们选取“小a”登陆微信,开始添加联系人。“联系人”表保存每个用户的联系人信息,这些联系人信息皆来自用户信息表。“
20、小a”的联系人如下表:此表的创建过程如下:用用朋标IDchai:i15)nDtvullfIDchar(15)natnullfcciifltrairtpflpxiznaxysenstrair.tfxlforeignzcnstraitft#fnreiE强友皿用户皿,MY,期五工口i匚h氏工vn二工dbw.月户喑忌用户工。.痈户皿rfwi*Ti=*adbc月户信息痈户1口门3、普通用户发送消息时,消息容将存储在“普通消息记录”表中,如现在“小a”向“小b”发送一条消息,然后“小b”再回复一条。“小a”也向“小c”发送一条消息。消息ID联系人ID用户1口内音发送时同1i00000100020M1T午5
21、点去球场踢球20154)5-1011:35:32040200000200010002可以,下午球场见20105-101T361720730000030003DOTI你好201&45-10J2:5B:1,fl3a其中表中的外键约束和默认值如下:0*nrt*d口daE妻njd1i-15Hbu畤由而si制c口Sa联系人产ielereceag)用户后总用户二口(fePTD)WkMoJ电d用白卷目1用户工比alterce&le如口.者j,肖息记录add发送时间flat”工时-r*defaultgeedate(在”普通消息记录表”中也可以查询两个用户之间的聊天记录,如查询“小a”和”小b”之间的聊天记录:
22、匚名近总仄内容,发送时间fTom四淆毗IE亡UIn(0001*0002*)and用启JgintOOOlF*0302*)*tn;国结果消息_皮法时间1|卡车睛萋标曷霭隹201享诉1011:35:32040InuBliiuiailiiuii*iJ2可以,下午球场见2015glD11茹17207同样也可以在“普通消消息记录表”中实现删除消息记录。在“普通消息记录”表中为了能使用户更快的查询自己的消息记录,这里创建了索引。createindex用户快速查询记录on此口.普通梢息记录用户工D)4、“微信群信息”表中记录了所有用户创建的微信群的信息。由于在微信中群成员数量当前限制为40个,在本平台中我们设
23、置为4个。并且每一个成员信息由外键引用自“用户信息”表。比如现在创建了两个个微信群如下:dbd徵信群信息日口列1群ID(PKchar(20)fnotnull)3群名称(品司心0上notnull)3群二维玛(binary(l)(notnull)fg1(FK,th白r(15Lnotnull)f成员2(FKPchar(15null)f(Ftch昌广(151null)?成员4(FK.char(15).null)国以随与束国用户摩信息新增raLa21群ID群名祢群二维码成员1成员2成员3成员4IIMiUidj1I00001j习汽咪球部茬ftcBF0001DQOQW03NULL1iwCOZ-足避球部落Qc
24、BFMl0002MULLHULL外键约束和非空约束如下:m点再:lr-hu=s*一一型一n孑上理府设巨一一自二二尾信信信Alzercolumn成员am8乃3匚/叁肃C-nstrirt.二1,二三曰GCT:冗工二工二t3V3三detzmtralzt二二cnir(15?mecull口门口口IT-I户户户户Iffilffilffilffl息息息息三E-L,=l-信信闩户户户用目月RrorinHwyfi5)ect*fek千口ERnkey成戏Wreferenceszoreiom.kevxctcrenccoarej-qnIceyreTerencea由于当用户创建了一个微信群后要在“用户所在群”表中显示出每
25、个用户所在的群,因此需创建一个触发器。在此创建的trigger为“用户信息新增”。代码如下:日变1再信平台】GO/*cibecr.ilugger亚:缸I用户群d三息币国【socipclacciosio/iQisis:ac117*,而TAN3T_WULLSOK30SIQUOTED_lDEJriiriERQX8BM-TZRtrigger:北口】用户群信息新噌二皿也切.微培录信息土白E1l9总工亡自3生,二1占3口门工120)PlidchariISjp,Idch.izIS,cySldchaz1R.&二上4上壮chmIS!selectminid-圻ID,正”咸男1_尸配214成员29c.y3id-3cyid-Fifruitinaertrdxfgffvliol19E13:null:EginiiMvxrltinte-用户用在群用户丁口群工匚:valu八id.乳/R*d)endXIIgcT21d13E1DZmil1tegin.j_n.3ertintodb-z?.用户所在等用户id群宣-=3cy2x,dr曰wniid)endxI-JGV3id
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旋臂稳定性与扰动-洞察分析
- 双氯西林钠基因编辑技术-洞察分析
- 新能源汽车安全评估与风险控制研究-洞察分析
- 网络安全风险评估-第3篇-洞察分析
- 用户体验心理研究-洞察分析
- 无人机高效能源管理-洞察分析
- 修身养性、赢在职场有效课件情商与影响力
- 碳纳米材料研究-洞察分析
- 微服务化架构性能调优-洞察分析
- 网格安全与隐私保护-洞察分析
- 2024版医院手术安全管理学习培训课件
- 材料标准目录
- 脑卒中后吞咽障碍患者进食护理(2023年中华护理学会团体标准)
- 护士执业注册申请表 新
- 妊娠期高血压疾病诊治指南(2022版)解读
- 公章证照使用登记表
- 哈萨克斯坦劳动法中文版
- 装修工程竣工验收自评报告
- 特发性矮小病例分享
- 环境科学统计与建模方法-南京大学中国大学mooc课后章节答案期末考试题库2023年
- 【某公司车间生产线优化的案例分析3400字】
评论
0/150
提交评论