微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)_第1頁(yè)
微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)_第2頁(yè)
微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)_第3頁(yè)
微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)_第4頁(yè)
微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)一、需求分析微信作為當(dāng)前的主要即時(shí)通訊工具之一,有著廣泛的應(yīng)用。其主要的功能是實(shí)現(xiàn)即時(shí)通信,這也是微信的核心功能。此外還有查看朋友圈動(dòng)態(tài)、搜索好友、管理個(gè)人信息、建立用戶自己的相冊(cè)、收藏功能、搖一搖、搜索附近的人、購(gòu)物、游戲等功能。此次對(duì)于微信平臺(tái)的數(shù)據(jù)庫(kù)設(shè)計(jì)主要對(duì)部分需要微信平臺(tái)提供存儲(chǔ)信息功能進(jìn)行需求分析及設(shè)計(jì)。 以下將對(duì)微信平臺(tái)的主要需求做簡(jiǎn)要的分析并且根據(jù)分析做出數(shù)據(jù)流圖使得對(duì)于微信平臺(tái)數(shù)據(jù)庫(kù)的設(shè)計(jì)有更好的理解。微信的通信主要包括與微信好友進(jìn)行相互通信,這其中通信內(nèi)容包括文字、語(yǔ)音、圖片及視頻。當(dāng)用戶訂閱了公眾號(hào)之后,會(huì)接收公眾號(hào)發(fā)送的消息并且也可向公眾號(hào)發(fā)信息或許其提供的信息。微信通信功能的另一個(gè)主要方面是實(shí)現(xiàn)群聊。用戶可以加入一個(gè)微信群進(jìn)行群。另一方面用戶也可以選擇自己的聯(lián)系人進(jìn)行群聊。微信中通訊錄實(shí)現(xiàn)了保存用戶聯(lián)系人的目的,并且訂閱的公眾號(hào)也保存于通訊錄中,并且在通訊錄中可以設(shè)定標(biāo)簽來(lái)為聯(lián)系人分組。微信朋友圈保存好友發(fā)送的與朋友共享的消息,其內(nèi)容可為文字、圖片、視頻。在朋友圈中可以設(shè)定權(quán)限使得不同權(quán)限的用戶查看的內(nèi)容不一樣。搖一搖功能可以獲取同一時(shí)刻一起搖動(dòng)手機(jī)的用戶,并且暫存于微信中。附近的人功能可以識(shí)別在一定范圍內(nèi)的微信用戶,并且將獲得的用戶信息也暫存在微信中,對(duì)于識(shí)別附近的用戶可以設(shè)定具體的條件來(lái)掃描。漂流瓶功能相當(dāng)于隨機(jī)的獲取微信消息或者向微信用戶隨機(jī)的發(fā)送消息。對(duì)于個(gè)人信息的編輯,用戶可以根據(jù)自身需要編輯一些所需的個(gè)人信息。最后在微信用戶個(gè)人信息中有相冊(cè)和收藏記錄用戶的照片和收藏的文字語(yǔ)音等信息。以上是對(duì)微信的部分功能的需求分析,現(xiàn)根據(jù)以上需求對(duì)微信數(shù)據(jù)庫(kù)畫(huà)出數(shù)據(jù)流圖:第0層DFD第1層DFD:二、概念設(shè)計(jì)在第一步的需求分析中,我們了解了微信數(shù)據(jù)庫(kù)平臺(tái)設(shè)計(jì)中所需要的實(shí)體及需要存儲(chǔ)的信息。在概念設(shè)計(jì)中將進(jìn)一步明確數(shù)據(jù)庫(kù)設(shè)計(jì)所需實(shí)體, 實(shí)體所具有的屬性及實(shí)體之間的關(guān)系。通過(guò)分析微信數(shù)據(jù)庫(kù)平臺(tái)所需實(shí)體主要有:用戶信息、普通消息記錄、公眾號(hào)信息、公

眾號(hào)消息記錄、微信群信息、群聊消息記錄、收藏信息、相冊(cè)、朋友圈信息、聯(lián)系人信息、附近人信息、漂流瓶信息、掃一掃信息、搖一搖信息。這些實(shí)體分別對(duì)應(yīng)于微信功能的不同模塊。在實(shí)現(xiàn)微信的通信功能主要是使用用戶信息、普通消息記錄、微信群信息、群聊消息記錄和聯(lián)系人信息這幾個(gè)實(shí)體。在明確所需實(shí)體后根據(jù)實(shí)際需要對(duì)于每個(gè)實(shí)體設(shè)置符合實(shí)際情況的屬性,每個(gè)屬性對(duì)應(yīng)了數(shù)據(jù)庫(kù)中的具體屬性。下圖是根據(jù)對(duì)于微信數(shù)據(jù)庫(kù)平臺(tái)的需求分析做出的 CDM,通過(guò)此概念模型顯示數(shù)據(jù)庫(kù)之間各實(shí)體之間的相互關(guān)系及各個(gè)實(shí)體所具有的實(shí)際屬性。三、邏輯設(shè)計(jì)由以上概念設(shè)計(jì)模型,我們可以獲得以下邏輯數(shù)據(jù)模型( LDM)。在LDM中對(duì)于CDM進(jìn)行了進(jìn)一步的細(xì)化和具體化,對(duì)其中的實(shí)體之間的關(guān)系在邏輯上進(jìn)一步的進(jìn)行了明確。在此基礎(chǔ)上我們獲得更加具體能直接反映數(shù)據(jù)庫(kù)涉及的無(wú)理數(shù)據(jù)模型( PDM)。通過(guò)PDM將具體顯示數(shù)據(jù)庫(kù)所需的表及其之間的關(guān)系。 PDM如下圖所示:在PDM中顯示了個(gè)表單之間的引用關(guān)系,其具體引用如下表:標(biāo)間關(guān)系名稱父表格子表格關(guān)注用戶信息關(guān)注關(guān)注公眾號(hào)信息關(guān)注發(fā)送公眾號(hào)信息公眾號(hào)消息記錄發(fā)送/接收用戶信息普通消息記錄發(fā)送消息用戶信息群聊消息記錄收藏用戶信息收藏信息查看:聯(lián)系人信息普通消息記錄用戶存放用戶信息搖一搖信息用戶所在群用戶信息用戶所在群用戶所在群:微信群信息用戶所在群用戶所屬用戶信息漂流瓶信息用戶掃描獲得用戶信息掃一掃信息用戶相冊(cè)用戶信息相冊(cè)用戶聯(lián)系人用戶信息聯(lián)系人信息群聊天記錄:微信群信息群聊消息記錄聯(lián)系人相冊(cè):聯(lián)系人信息相冊(cè)獲取用戶信息附近人信息本系統(tǒng)中使用的表單如下所示:1、用戶信息表r~ rzNameDataTypeLengthP(主鍵)F(外鍵)M(不可為空)用戶ID 1char(15)15XX昵稱char(20)20X頭像ongbinary二維碼名片1ongbinaryX我的地址varchar(100)100性別char(5)5X地區(qū)varchar(20)20X

個(gè)性簽名varchar(500)500登陸密碼—varchar(20)20X2、普通消息記錄表NameDataTypeLength1PFM消息IDchar(20)20XX聯(lián)系人IDchar(15)15X用戶IDchar(15)15X內(nèi)容varchar(5000)5,000X發(fā)送時(shí)間datetimeX3、聯(lián)系人表77NameDataTypeLengthF)FM朋友IDchar(20)20XX用戶ID—char(15)15X備注名稱char(20)20X標(biāo)簽varchar(20)204、公眾號(hào)信息表■- FNameDataTypeLengthPFM公眾號(hào)IDchar(20)20XX公眾號(hào)名稱(:har(40)40X5、公眾號(hào)消息記錄表NameDataTypeLengthPFM公眾消息IDchar(20)20XX公眾號(hào)IDchar(20)20X公眾消息varchar(5000)5,000X訂閱者varchar(8000)8,000X發(fā)送時(shí)間timestampX6、關(guān)注表NameDataTypeLengthPFM用戶IDchar(15)15XXX公眾號(hào)IDchar(20)20XXX7、微信群信息表NameDataTypeLengthPFM群IDchar(20)20XX群名稱char(20)20X群二維碼longbinaryX群成員varchar(1000)1,()00X8用戶所在群表NameDataTypeLengthPFM用戶IDchar(15)15XXX群IDchar(20)20XXX9、群聊消息記錄表NameDataTypeLengthPFM群聊消息IDchar(20)20XX群IDchar(20)20X發(fā)送人char(20)20X發(fā)送時(shí)間timestampX內(nèi)容varchar(5000)5,000X10、相冊(cè)表NameDataTypeLengthPFM相冊(cè)IDchar(20)20XX用戶IDchar(15)15X聯(lián)系人IDchar(20)20X存放時(shí)間timestampX內(nèi)容varchar(5000)5,000X11、收藏信息表NameDataTypeLengthPFM收藏IDchar(20)20XX用戶IDchar(15)15X收藏時(shí)間timestamp收藏內(nèi)容varchar(8000)8,00012、附近人信息表NameDataTypeLengthPFM附近人IDchar(20)20XX用戶IDchar(15)15X昵稱char(20)20X距離integer性別char(5)5地區(qū)varchar(20)20個(gè)性簽名varchar(500)50013、搖一搖信息表NameDataTypeLengthPFM搖一搖信息IDchar(20)20XX用戶IDchar(15)15X時(shí)間timestamp內(nèi)容varchar(5000)5,00014、掃一掃信息表NameDataTypeLengthPFM掃一掃信息IDchar(20)20XX用戶IDchar(15)15X時(shí)間timestamp內(nèi)容varchar(5000)5,000X15、漂流瓶信息表NameDataTypeLengthPFM漂流瓶IDchar(20)20XX用戶IDchar(15)15X內(nèi)容varchar(5000)5,000X對(duì)于微信數(shù)據(jù)庫(kù)平臺(tái)的邏輯分析,明確了在具體是實(shí)現(xiàn)時(shí)所需的表及其各個(gè)表之間的引用關(guān)系,在接下來(lái)的物理設(shè)計(jì)中將使用邏輯設(shè)計(jì)中的表在具體數(shù)據(jù)庫(kù)實(shí)現(xiàn)微信數(shù)據(jù)庫(kù)平臺(tái)的設(shè)計(jì)。四、物理設(shè)計(jì)在此次物理實(shí)現(xiàn)微信數(shù)據(jù)庫(kù)平臺(tái)使用SQLServer2008。實(shí)現(xiàn)簡(jiǎn)單的微信平臺(tái)的數(shù)據(jù)庫(kù),通過(guò)在數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)或查看數(shù)據(jù)來(lái)表現(xiàn)微信平臺(tái)對(duì)信息的發(fā)送接收及查看。在此次物理實(shí)現(xiàn)是我們遵循3NF數(shù)據(jù)庫(kù)設(shè)計(jì)如下圖:1、 向“用戶信息”表添加記錄,模擬微信在線用戶。此次添加三個(gè)用戶作為模擬的微信用戶。用戶基本信息如下:2、 我們選取“小a”登陸微信,開(kāi)始添加聯(lián)系人?!奥?lián)系人”表保存每個(gè)用戶的聯(lián)系人信息,這些聯(lián)系人信息皆來(lái)自用戶信息表?!靶”的聯(lián)系人如下表:此表的創(chuàng)建過(guò)程如下:3、普通用戶發(fā)送消息時(shí),消息內(nèi)容將存儲(chǔ)在“普通消息記錄”表中,如現(xiàn)在“小 a”向“小b”發(fā)送一條消息,然后“小b”再回復(fù)一條?!靶”也向“小c”發(fā)送一條消息。其中表中的外鍵約束和默認(rèn)值如下:在”普通消息記錄表”中也可以查詢兩個(gè)用戶之間的聊天記錄,如查詢“小 a”和”小b“之間的聊天記錄:同樣也可以在“普通消消息記錄表”中實(shí)現(xiàn)刪除消息記錄。在“普通消息記錄”表中為了能使用戶更快的查詢自己的消息記錄,這里創(chuàng)建了索引。4、 “微信群信息”表中記錄了所有用戶創(chuàng)建的微信群的信息。由于在微信中群成員數(shù)量當(dāng)前限制為40個(gè),在本平臺(tái)中我們?cè)O(shè)置為4個(gè)。并且每一個(gè)成員信息由外鍵引用自“用戶信息”表。比如現(xiàn)在創(chuàng)建了兩個(gè)個(gè)微信群如下:外鍵約束和非空約束如下:由于當(dāng)用戶創(chuàng)建了一個(gè)微信群后要在“用戶所在群”表中顯示出每個(gè)用戶所在的群,因此需創(chuàng)建一個(gè)觸發(fā)器。在此創(chuàng)建的trigger為“用戶信息新增”。代碼如下:5、 “用戶所在群”表存儲(chǔ)了每個(gè)用戶所在的群信。每個(gè)用戶可根據(jù)此表查詢所在群信息。當(dāng)一個(gè)微信群被創(chuàng)建后在“用戶所在群”表中將自動(dòng)顯示用戶所在群信息。6、 “群聊消息記錄表”記錄了每個(gè)群的消息。也可以查詢歷史記錄。比如在群“羽毛球部落”中的消息記錄。為了使得用戶在查詢?nèi)簹v史消息時(shí)更加快速,創(chuàng)建索引。7、“公眾號(hào)信息”表記錄了所有公眾號(hào)的信息。可以通過(guò)搜索公共號(hào)ID或名稱來(lái)訂閱公眾號(hào)。&“關(guān)注”表中,存儲(chǔ)了每個(gè)用戶訂閱的公眾號(hào)。9、 “公眾號(hào)消息記錄”存儲(chǔ)公眾號(hào)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論