下載文檔到電腦,查找使用更方便
12 積分
下載資源
《微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì)(23頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、微信數(shù)據(jù)庫(kù)分析與設(shè)計(jì) 一、需求分析 微信作為當(dāng)前的主要即時(shí)通訊工具之一,有著廣泛的應(yīng)用。其主要的功能是 實(shí)現(xiàn)即時(shí)通信,這也是微信的核心功能。此外還有查看朋友圈動(dòng)態(tài)、搜索好友、 管理個(gè)人信息、建立用戶(hù)自己的相冊(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ù)訂閱了公眾號(hào)之后,會(huì)接收公眾號(hào)發(fā)送的消息并且
2、也 可向公眾號(hào)發(fā)信息或許其提供的信息。 微信通信功能的另一個(gè)主要方面是實(shí)現(xiàn)群聊。用戶(hù)可以加入一個(gè)微信群進(jìn)行 群。另一方面用戶(hù)也可以選擇自己的聯(lián)系人進(jìn)行群聊。 微信中通訊錄實(shí)現(xiàn)了保存用戶(hù)聯(lián)系人的目的,并且訂閱的公眾號(hào)也保存于通 訊錄中,并且在通訊錄中可以設(shè)定標(biāo)簽來(lái)為聯(lián)系人分組。 微信朋友圈保存好友發(fā)送的與朋友共享的消息,其內(nèi)容可為文字、圖片、視 頻。在朋友圈中可以設(shè)定權(quán)限使得不同權(quán)限的用戶(hù)查看的內(nèi)容不一樣。 搖一搖功能可以獲取同一時(shí)刻一起搖動(dòng)手機(jī)的用戶(hù),并且暫存于微信中。 附近的人功能可以識(shí)別在一定范圍內(nèi)的微信用戶(hù),并且將獲得的用戶(hù)信息也 暫存在微信中,對(duì)于識(shí)別附近的用戶(hù)可以設(shè)定具體的
3、條件來(lái)掃描。 漂流瓶功能相當(dāng)于隨機(jī)的獲取微信消息或者向微信用戶(hù)隨機(jī)的發(fā)送消息。 對(duì)于個(gè)人信息的編輯,用戶(hù)可以根據(jù)自身需要編輯一些所需的個(gè)人信息。 最后在微信用戶(hù)個(gè)人信息中有相冊(cè)和收藏記錄用戶(hù)的照片和收藏的文字語(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í)體所具有 的屬
4、性及實(shí)體之間的關(guān)系。 通過(guò)分析微信數(shù)據(jù)庫(kù)平臺(tái)所需實(shí)體主要有:用戶(hù)信息、普通消息記錄、公眾 號(hào)信息、公眾號(hào)消息記錄、微信群信息、群聊消息記錄、收藏信息、相冊(cè)、朋友 圈信息、聯(lián)系人信息、附近人信息、漂流瓶信息、掃一掃信息、搖一搖信息。這 些實(shí)體分別對(duì)應(yīng)于微信功能的不同模塊。 在實(shí)現(xiàn)微信的通信功能主要是使用用戶(hù)信息、普通消息記錄、微信群信息、 群聊消息記錄和聯(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)
5、系及各個(gè)實(shí)體所具有的實(shí)際屬性。 容他 3何 一 三二;一二 區(qū)信發(fā)x¥濡F 5”cttn (20, Chgrseten (20) Varablc choroct&r: (6030) Cale & Time Characten (20) V^roble chwncf>n (100) Cote & Time # fc^JJD ?雯稱(chēng) O忌高 O o o 。個(gè)令箕與 落運(yùn)人情息 , Cnfiracten 12d Cnoroctcr: (20 Irteger Cnaracters (5) V?ri?ble cnnn?cf*n (20l Arable c^woater
6、s :「一, Coto & Tim chaiKUn (X)0C) —兩向 ?3-515. “ *一包 W,IC C"9,s[20) D?t? 6 Tinw Variate cha-aaers (£000 且云上知D C、o,n |二0: ?內(nèi)亨 VM * la6,OCUfS(800) ■髀&I粵力 7手守 ?發(fā)送人 ?發(fā)送封堂 Ch,r?d5 2C) ?裳林 ?歲東人 。 ?二步七名闿 o ?城區(qū) o個(gè)隹8名 V =r^.€ C^ar3cte-s 15) C卜anadGrc 20) Chapdus 2J) imaje (100) Iec,(10
7、0) VorisblQ shocct。100) cr<8oaefs O Variable Faraders 20) Varitblo am dore (500) dw?a?f> (20) Ch*r?a?r> 20) Charaae3 20) Ds:e&Tme Variobla sharActQQ (5CO9) 、 A 發(fā)送消息 天云次 s £1D ?暮自生 -妄二金天 5— (20 Chsr?rt 8、L程安 公眾弓怡電 士 Chara d— ?公眾?號(hào)名侮Charactds 40) 專(zhuān)章入號(hào)5 Q 五人ID。仁拿8CIV5 ;20) 士電Ume3m[20) 7存么片同C>tt i rifnt ? 丹號(hào) MBTisbl, dweten (5000) V.e閨 會(huì)演老3t 運(yùn)眾a送 X4 W 衣58借專(zhuān) 2 衣1。 CharaztgZ): o也包交同Date 8 Time o 上祟力建 VoriablQ ohora^ers (10COO) Charaaefi(20) l-nase 100i Variable character (1000) V 言蕓j.招 9、生 mm轉(zhuǎn)息記錄 ? 「里ID Characteft (2C) ?發(fā)送人 Chiroctorz (20) ?安次人 Chvocteo (20) ?丹叁 van a Die cnarsaen(OOOC) 、? 3MWB! Dale & Time . Cbaacters(20) CbB*AetAf? ((5) Cba*octeo(20) vanaoe crs-acters(20) Variabe c^a-acters (50C) Vfiriaha c±flractofc (20) J8 看一 10、 三、邏輯設(shè)計(jì) 由以上概念設(shè)計(jì)模型,我們可以獲得以下邏輯數(shù)據(jù)模型( LDM tMB8 >裝廣 "4出礴 ? ¥> q也用n凋 --u總與司 al前曾 門(mén) nHadan _2£ 一 ch&T*「停二違 0T-HK3Jsl ".■(■,Un -n qD-uHG 再I(mǎi)T--。 O軍占$窘7 &£c訃3『T蒼 口m E T-m r . ii 4 0 □ It &- 1 0 H R 1 A r i ii ■ 口 i i; 日 n n 4 口 d U rv e a r i f y J 1 11、 3 Li ■ ¥ ■ "" A 盾 n j u $ * ii AIA破.聲 沖.掂—前ma 口牙比里白WElhJr M Tuu fEERH 中黑a0曾Pr-T-HMI P青 崎 v&dA'ble cT LJ生,SKiO dLllraE I?|而皿皿In- "ns 計(jì) eM機(jī) Own:廿 tts =-31 ? IT? oHHiR T 一^ ? 年<14<七吊。者 U-^SAHS ,n^ 曄2gn1■早二|1|n」 Q.1JUH15" ?導(dǎo)嚼 前nsDgarBJQ毀 一*|口13號(hào) 二 F Iliff U 祐U I . ——r;- cka-rE?s-* c 12、tlraL-Ers 二" 9**?-as 2ch DzianT-rw <1西江小笈5 Mes d.ll°5t.iiL* 年lff:DIII1B1 艮EArzay 春1>'■■ s??a里二 ? HH0W_5?£_G5 nd ◎stall?山m. . 1 2 9as^3 片‘ ■CJhTEWn20』 一3番±1昌 -1 言》 h-" b■啟4 -flns Gd_EdiErs E.. *nT Blur*dK^ -H) V^r-PIF, EilEacian -{Mq一 <嗝O3m 噌號(hào)£ 匕'I'?工N 色-fljllu cl仔?中』 力帝?as y w. n _.20b 13、將而a J吊 5r 占 200- o tr 1■?蛇 ,占甲 *lqs*is ls&3§ 14、^ A? 口胃鼻冠lizFa*口 外鞫 MH- r MUS char-3 w Jl * -ocharyw fc-E-w 手E_DlJi言 **c: 踣有>&W.B >麗 .HuhxEOODj 劃p:17 由 ^Tivff-3-v ,-IfflillaT-lTM 心防前R 涸 hnn ■ r*3方向不?出UM.Midi砧暗, GMESKW^ .=u%a— Em urTMM學(xué)巨 M% 云口 w_.有號(hào) A^v li-iHMlli-u. 立 飛 郭 6 Aarfa^ 稿 BJC" dl、-0 AM 鼻 A? Jr415』(KXS) MITlWE 陽(yáng)酒 J> euXLal 15、/ AffMtrDly Il/ 叼科Tr西鼻 廿hary Al1寺 V 廿 If■ OMAi 修Mc?rdMrt293 小麻髀的 so&Bff 腳Iv制SI 修川?1-1j.r!:二 四.。- Q c*w¥ 4IV ff口 孰胃? JUJD Asv 痢科停蜘1?%叫一吵》 潭& A ch#4整 埼“中山 rmtvnETmo 注鐘 dpIJtlm* LWrGlu豈三片「「;7 二 一口 .luErs m 16、F I ri* * M.E 從如% 注后.E i.'117 - 廣/1>中小律—招,|!-%中抑,誨|?強(qiáng)小 If'”阿 3 01 h#—臀鬻 R 恂羯iwll-ff富IliF - J一一可-smrt ba-=i垢G YL 1 菖. 厚4I,E 尸審h)ll_KJI回”號(hào)由 惜少>>)|臉曲q$4¥ 帶冷*I.JtE也* mLllaInQ£l-plr>士. 心 k. H n my " WRa總MII的竹RAa.a 壬? 尋藥曲<獸?。X34O) ,SW4^ ffav 在PDW顯示了個(gè)表單之間的引用關(guān)系,其具體引用如下表: 17、 標(biāo)間關(guān)系名稱(chēng) 父表格 子表格 關(guān)注 用戶(hù)信息 關(guān)注 關(guān)注 公眾號(hào)信息 關(guān)注 發(fā)送 公眾號(hào)信息 公眾號(hào)消息記錄 發(fā)送/接收 用戶(hù)信息 普通消息記錄 發(fā)送消息 用戶(hù)信息 群聊消息記錄 收藏 用戶(hù)信息 收藏信息 查看 聯(lián)系人信息 普通消息記錄 用戶(hù)存放 用戶(hù)信息 『搖信息 用戶(hù)所在群 用戶(hù)信息 用戶(hù)所在群 用戶(hù)所在群 微信群信息 用戶(hù)所在群 用戶(hù)所屬 18、 用戶(hù)信息 漂流瓶信息 用戶(hù)掃寸而獲得 用戶(hù)信息 『掃信息 用戶(hù)相冊(cè) 用戶(hù)信息 相冊(cè) 用戶(hù)聯(lián)系人 用戶(hù)信息 聯(lián)系人信息 群聊天記錄 微信群信息 群聊消息記錄 聯(lián)系人相冊(cè) 聯(lián)系人信息 相冊(cè) 狀取 用戶(hù)信息 附近人信息 本系統(tǒng)中使用的表單如下所示: 1、用戶(hù)信息表 Name Data Type Length P (主鍵) F (外鍵) M (/、可為空) 用戶(hù)ID char(15) 15 X X 昵稱(chēng) char(20) 20 X 頭像 long binary 二維碼名片 long 19、 binary X 我的地址 varchar(100) 100 性別 char(5) 5 X 地區(qū) varchar(20) 20 X 個(gè)性簽名 varchar(500) 500 登陸密碼 varchar(20) 20 X 2、普通消息記錄表 Name Data Type Length P F M 消息ID char(20) 20 X X 聯(lián)系人ID char(15) 15 X 用戶(hù)ID char(15) 15 X 為容 var 20、char(5000) 5,000 X 發(fā)送時(shí)間 datetime X 3、聯(lián)系人表 Name Data Type Length P F M 朋友ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 備注名稱(chēng) char(20) 20 X 標(biāo)簽 varchar(20) 20 4、公眾號(hào)信息表 Name Data Type Length P F M 公眾號(hào)ID char(20) 20 X X 公眾號(hào)名稱(chēng) char(40 21、) 40 X 5、公眾號(hào)消息記錄表 Name Data Type Length P F M 公眾消息ID char(20) 20 X X 公眾號(hào)ID char(20) 20 X 公眾消息 varchar(5000) 5,000 X 訂閱者 varchar(8000) 8,000 X 發(fā)送時(shí)間 timestamp X 6、關(guān)注表 Name Data Type Length P F M 用戶(hù)ID char(15) 15 X X X 公眾號(hào)ID ch 22、ar(20) 20 X X X 7、微信群信息表 Name Data Type Length P F M 群ID char(20) 20 X X 群名稱(chēng) char(20) 20 X 群二維碼 long binary X 群成員 varchar(1000) 1,000 X 8、用戶(hù)所在群表 Name Data Type Length P F M 用戶(hù)ID char(15) 15 X X X 群ID char(20) 20 X X X 9、群聊消息記錄 23、表 Name Data Type Length P F M 群聊消息ID char(20) 20 X X 群ID char(20) 20 X 發(fā)送人 char(20) 20 X 發(fā)送時(shí)間 timestamp X 內(nèi)容 varchar(5000) 5,000 X 10、相冊(cè)表 Name Data Type Length P F M 相冊(cè)ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 聯(lián)系人ID char(20) 20 24、 X 存放時(shí)間 timestamp X 內(nèi)容 varchar(5000) 5,000 X 11、收藏信息表 Name Data Type Length P F M 收藏ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 收藏時(shí)間 timestamp 收藏內(nèi)容 varchar(8000) 8,000 12、附近人信息表 Name Data Type Length P F M 附近人ID char(20) 20 X 25、 X 用戶(hù)ID char(15) 15 X 昵稱(chēng) char(20) 20 X 距離 integer 性別 char(5) 5 地區(qū) varchar(20) 20 個(gè)性簽名 varchar(500) 500 13、搖一搖信息表 Name Data Type Length P F M 搖一搖信息 ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 時(shí)間 timestamp 內(nèi)容 va 26、rchar(5000) 5,000 14、掃一掃信息表 Name Data Type Length P F M 掃一掃信息 ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 時(shí)間 timestamp 內(nèi)容 varchar(5000) 5,000 X 15、漂流瓶信息表 Name Data Type Length P F M 漂流瓶ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 內(nèi)容 27、 varchar(5000) 5,000 X 對(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)使用 SQL Server 2008。實(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)是我們遵循3NE 數(shù)據(jù)庫(kù)設(shè)計(jì)如下圖: 3 4黨信平臺(tái) +」數(shù)據(jù)庫(kù)關(guān)量圖 尸口表 團(tuán)□此□附近人信息 +) J 6匕6公眾號(hào)消.皂:己靈 3 口此。 28、公眾號(hào)信息 3 _j晶口關(guān)注 司 3 dboKMA 國(guó)3北日霹郵信息 士二I此白苔國(guó)自息記錄 用_j此0靠融消息記錄 +1二]北口掃一3信息 +) _□此口,環(huán)畸信息 ±1 □ dbo徵信群信息 +1 3 dbcr柜冊(cè) □ □此口提T信息 由J此口用戶(hù)所在群 1 _J此0用戶(hù)信息 if LJ視圖 1、向“用戶(hù)信息”表添加記錄,模擬微信在線用戶(hù)。此次添加三個(gè)用戶(hù)作為模 擬的微信用戶(hù)。用戶(hù)基本信息如下: 日圉db□,用戶(hù)信.名 二 I 一i 到 f 用戶(hù)I。tPK, char[15L not null) i n 呢稱(chēng)(chd<2 01 not null) 圉 頭焦(binary 29、(l), null) iT1 二維膏名片(binary〔1). not null) 國(guó) 我花地址 tvarcbar(lOO), null) H 性物(chard not null] E 地區(qū)(varchar(20)t not null) 1=1 個(gè)性卷名[varthar(5OO), null) H 登陸寶毛(wanchart2O), rot null) 2、我們選取“小a”登陸微信,開(kāi)始添加聯(lián)系人。“聯(lián)系人”表保存每個(gè)用戶(hù) 的聯(lián)系人信息,這些聯(lián)系人信息皆來(lái)自用戶(hù)信息表?!靶?a”的聯(lián)系人如下表: 此表的創(chuàng)建過(guò)程如下: nst nuLlf 用用朋標(biāo) ID char H5) 30、 n9t noil f scziBtrairt p Hcarvims db*用戶(hù)宿息癰戶(hù)ID卜. 一一.1 月破ID "e -i r 用戶(hù)ID 朋友笛在名 標(biāo)箜 1 1 W0Z 0001 明B月 同學(xué) 2 0M3 0M1 NULL NULL 3、普通用戶(hù)發(fā)送消息時(shí),消息內(nèi)容將存儲(chǔ)在“普通消息記錄”表中,如現(xiàn)在“小 a”向“小b”發(fā)送一條 31、消息,然后“小b”再回復(fù)一條?!靶”也向“小c” 發(fā)送一條消息。 dbd普圜鱷記錄 臼口更I ? 聲息JD (PKd char[20j,, not null) ?聯(lián)口 (FK. chdr(151 nulD 'f 用口【D (FK. char[15)r null) 直內(nèi)容"archarf5000), not nidi) =1 發(fā)送Tj1閆汨己tetirri亡,not null] 消息? 聯(lián)系人舊用戶(hù)ID內(nèi)容 發(fā)送時(shí)間 1 「證麗30002 DM1 F午5點(diǎn)去球場(chǎng)踢球 2015-D5-K 1135:32040 2 麗而2 0001 0002 可以,下午涉場(chǎng)見(jiàn) 20154P5- 32、1011:36:17207 3 000003 0003 0W1 你好 2015-05-1012581EB3J 其中表中的外鍵約束和默認(rèn)值如下: 箱13匚GSHe 0c,百通捎 目記無(wú) 單口4 gnapgJL口t 門(mén)司fnz工g 曜丁 欣/人工匚 Humreca* 80*用戶(hù)信息 用 戶(hù)二口 sl tEE t isble dba .普通稍息布察 edd 匚口口口七匚勺七口t. 5kt E3re-ign 三口匚D) ruEuHuncun i±d用盧?信慮£用盧工「 alter table 01tle-廿通捎息記錄 ad:l 發(fā)送時(shí)間 日"“工口七 7c 、 default HMbEet 33、 在”普通消息記錄表”中也可以查詢(xún)兩個(gè)用戶(hù)之間的聊天記錄,如查詢(xún)“小 a” 和”小b ”之間的聊天記錄: II 乩工。內(nèi)容「發(fā)顏1間£工口小 儂春 「岫七a SfcMAjS m('0001\ f0002*) and 111(-0001' , *0002*) ,j55…__…_…_ ___發(fā)醫(yī)時(shí)間 1 |取而后云標(biāo)立?靄隹1 201531。11:35:32,040 VIIBIIAIBIIlUillll l&lll IlbU ■IIUdlliaMIIHIIMHIIIIKIIII iJ 2 可以,下午球場(chǎng)見(jiàn) 20154&10 11 36:17207 同樣也可以在“普通消消息記錄表”中 34、實(shí)現(xiàn)刪除消息記錄。 在“普通消息記錄”表中為了能使用戶(hù)更快的查詢(xún)自己的消息記錄, 這里創(chuàng)建 了索引。 create index用戶(hù)快速查詢(xún)記錄皿普通消息記錄f用戶(hù)1口) 4、“微信群信息”表中記錄了所有用戶(hù)創(chuàng)建的微信群的信息。由于在微信中群 成員數(shù)量當(dāng)前限制為40個(gè),在本平臺(tái)中我們?cè)O(shè)置為4個(gè)。并且每一個(gè)成員信息 由外鍵引用自“用戶(hù)信息”表。比如現(xiàn)在創(chuàng)建了兩個(gè)個(gè)微信群如下: H匕口.滯信其傳導(dǎo) 上Li列 ? 蔭口 (P<, char(2Ol not null'! 圖 辭名林(char(2D). not null) 國(guó) 群二(binary(l)f not nul 35、l) f (F< char[15), not null) f 成員2 (FK ch雨口5). nW) f OS3 (F< eh3r(151. null] f 成員4 ffK char(151 null) 田N/ 5」的柬 IT LJ觸發(fā)瞿 國(guó)用戶(hù)群信息新增 1 ? 7 番 m ? 群ID 群名禰 群二維碼成員1成員2成員3成員4 I—IM ■■ IMtd ■ | 1 1 MXW1 j 可用$碟部落 &cEF DW1 OMH W03 NULL 2 oS)02" 足避球部蓬 QcBF M)C1 0002 MULL NULL 外鍵約束和非空約束如下: £uf 旦.二汽 信信信 36、百君苣聲名 -一11=5=足=£二■ 領(lǐng)禪 <0?fl-*Qlp ilzer column chir (15 noz 口3口口 Till 戶(hù)戶(hù)戶(hù)戶(hù) URFRFT 息息息息 信信信信 川戶(hù)戶(hù)戶(hù) he?rr 喙己可 ccmBLrdlnt ug】rot-elgn i 1) e■1史愛(ài)W工皿 a;dd G^mstr^irt 二『7 £口「<1口11 key 嗔1年 fu 察看口仁七 m dh■: sdd ccnstrsizt 5-yS :ioixLg key xcfcscnccj db^ 三 Ed szrutrslzt sy a ^arexqn. key zeTerence 37、s dtni 由于當(dāng)用戶(hù)創(chuàng)建了一個(gè)微信群后要在 “用戶(hù)所在群”表中顯示出每個(gè)用戶(hù)所在的群, 因此需 創(chuàng)建一個(gè)觸發(fā)器。在此創(chuàng)建的 trigger為“用戶(hù)信息新增”。代碼如下: 口叫「徵信平告】 GO 口匕:Trigger 【位u】* |用戶(hù)群息?漸增 I Sacxp^ Da^.bi 05-工。l&ta&il? ,,備? 5ET Air3T_WULLS ON so SET GU0TED_I3€;niFIE.R QX 8 esltzr s.m- —“1」用戶(hù)打信息新噌二 皿『血:】J睜輜七息】 ror insert aa cfe^lar- 'Squn^d 2har JO) r 38、 ?c:\lLldl chAr 11 S;i F $cy2 Id ehi.r IS. , @cylld char 1 !1 ; f 9 -741 d ehar ;15> select Wqiinid一群TD? *eyli 1- r &cy2 id-2^ ^,r 4 £t&h inaerted xf?Saylid 19 nn: null t?gin insert, into dbn .用戶(hù)所在群 用戶(hù)I口(工口) yh1u?s ; 9-箱.i d.外」nid) end £工 ? ?cy2i d 工 2 口:二 u.ull begin maert into dbo.用戶(hù)所在群 用戶(hù)?1 39、口 .群建value a 8cy2i2期a”nid) end r£ I 2 c2,'3 It!口- - iiu.ll begin iuert mt= db*用戶(hù)所在群用戶(hù),匚群“ Tallies :0“”d 尸 gun工 d] end ifi aisl -:」| :...:! begin xxLsext izitz: dh:i .月戶(hù)所在群 用戶(hù)1匚 群工匚 vaLue b ?cy4^dF '^crLinid; -fiQil 5、“用戶(hù)所在群”表存儲(chǔ)了每個(gè)用戶(hù)所在的群信。每個(gè)用戶(hù)可根據(jù)此表查詢(xún)所 在群信息。當(dāng)一個(gè)微信群被創(chuàng)建后在“用戶(hù)所在群”表中將自動(dòng)顯示用戶(hù)所在群 信息。 40、 =1 _ db.用戶(hù)哥在摩 日口列 ?用戶(hù)[D (PK. F《char(15); ntrt null) ?群[力(PK, FK, char^OL not null] g 巾卡 | UJ 1 用戶(hù)2 群ID 1 \W] ,! 0D0D1 2 0002 W001 3 0003 CMK01 4 0001 M002 5 0002 W002 6、“群聊消息記錄表”記錄了每個(gè)群的消息。也可以查詢(xún)歷史記錄。比如在群 “羽毛球部落”中的消息記錄 三口列 / BMK;當(dāng)息ID (PK, char(20)P not null) ?群ID (FKr 小時(shí) 41、??贚 null] H 費(fèi)送人(char(2D), not null] 囪 內(nèi)容(varchart5000)P not null) J 宣野1 間(small datetime, null] -- ■ J-F11 群哪肖息ID 群舊 發(fā)送人 內(nèi)容 發(fā)送時(shí)間 1 [OOWDOOOOI \ DOMI 小日 明天去打羽毛球 2015-05-1D 15:48:00 2 OWOOM2 D&M7 小b 下午去 201^)6-10 154500 3 (wocoowm 0OTQ1 小C 可以 201M5-10 1543:00 4 DOtMDDtXX 42、M DCHM1 小。 下午3點(diǎn) 2015^1015:50:00 為了使得用戶(hù)在查詢(xún)?nèi)簹v史消息時(shí)更加快速,創(chuàng)建索引。 sc index群消息快速查詢(xún)on如□.群聊梢息記錄(群工因 7、“公眾號(hào)信息”表記錄了所有公眾號(hào)的信息??梢酝ㄟ^(guò)搜索公共號(hào)ID或名稱(chēng) 來(lái)訂閱公眾號(hào)。 日口列 ?公眾號(hào)2 (P6丑3, not null〕 J (char(401 not null) 8、“關(guān)注”表中,存儲(chǔ)了每個(gè)用戶(hù)訂閱的公眾號(hào)。 3 □ dbQ.關(guān)注 臼一列 g 用戶(hù)1口 (PK. F& char(15), not null) ?公有【口 伊K FK, char(20)J not n 43、ull) 」落果消息 1 用戶(hù)心 1?■ 1 imillBifl ■■■■ HUBI| \ 0001 公氽^口 QOT1 2 0002 0002 3 0001 QM3 d (KXM 9、“公眾號(hào)消息記錄”存儲(chǔ)公眾號(hào)為訂閱者發(fā)送的消息 E 口 db?公眾號(hào)j省息記錄 日口列 I 公觸息ID CP< char^O), net null) ?公眾號(hào)ID (FK, char^OX null) _2 公眾消.皂(varcbar(5OOO)r net null] J 發(fā)送藥間 ftimestamp, not null) 公眾消息ID公眾號(hào)ID公眾消息 44、 OOO&DODM 0M2 秋假安排 廉政建設(shè) 發(fā)送時(shí)間 題 1541Moi收 17:00 20154&10 1€:1&00 WDOOOD06 0004 深程計(jì)劃 201W51D 16:18:00 10、其余各表分別存儲(chǔ)每個(gè)用戶(hù)在微信中的信息, 通過(guò)外鍵引用來(lái)確定每個(gè)表中 各個(gè)用戶(hù)的信息,其具體結(jié)構(gòu)如下: d昌db.附近人信息 日口列 f 附(PK, chariot)], not null) f用戶(hù)【CUFK,小苜r(15h mil) 圖 昵稱(chēng)[char[20], not null ? ID 建至 frit null] S) ftBl (char(5L nu 45、ll] 國(guó)地區(qū)(varchar(20)j null) 國(guó)個(gè)性簽名(varcharfSOO), nullj 二I db口醬惹信息 臼LJ列 f 漂(P& chartiO]. not null) f 用戶(hù)】D (F兄 charCIS), null) ?1 內(nèi)客[vartzhaHSOOO] rot null] d」m口掃T信息 日口列 V 掃一S信副。(PK char(201 not null] * 用戶(hù)ID (國(guó) chartl^ null) 囿內(nèi)容(var匚har(5W01 not null] 3 rfi? (sinalldatetime, null) ■Urfr = 46、1 口 日口列 t (PK char(2D)T not null) ,用戶(hù)ID(F區(qū)小ar(l辦null) 3 L西內(nèi)容(vairha180001 null) fl 晚演門(mén)閆(sHnalldaletime. null] 上二1 dbc1靠?jī)?cè) 日口列 ?醐【D (PK ckar(20)J rrot null) f 用戶(hù)舊(FK, charCIS], null) 31 寮莖人□ yharQO] null) 3]內(nèi)容(varchartSOOOJj not null) 3 存,放時(shí)向 Csmall datetime, null) U二i d ba延一備信息 臼u列 ?授T信息m (PK char^oi not null) ?用戶(hù)IB (F& c*r(15),「則 S 內(nèi)容即L50TO, null) J 酎間(smalldatetime, null) 一」 「?? Mi 以上即為微信數(shù)據(jù)庫(kù)平臺(tái)的簡(jiǎn)單的物理設(shè)計(jì),在具體物理設(shè)計(jì)實(shí)現(xiàn)時(shí)根據(jù)具 體需要對(duì)數(shù)據(jù)路平臺(tái)的邏輯設(shè)計(jì)進(jìn)行了部分修改,也更加具體化了數(shù)據(jù)庫(kù)功能。 本數(shù)據(jù)庫(kù)只是簡(jiǎn)單的對(duì)微信平臺(tái)數(shù)據(jù)庫(kù)的實(shí)現(xiàn),其中還存在許多不足和缺陷 需進(jìn)一步完善。最后,通過(guò)此次數(shù)據(jù)庫(kù)的設(shè)計(jì)實(shí)現(xiàn)進(jìn)一步熟悉了數(shù)據(jù)庫(kù)相關(guān)的知 識(shí)及數(shù)據(jù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)
8、L程安 公眾弓怡電 士 Chara d— ?公眾?號(hào)名侮Charactds 40) 專(zhuān)章入號(hào)5 Q 五人ID。仁拿8CIV5 ;20) 士電Ume3m[20) 7存么片同C>tt i rifnt ? 丹號(hào) MBTisbl, dweten (5000) V.e閨 會(huì)演老3t 運(yùn)眾a送 X4 W 衣58借專(zhuān) 2 衣1。 CharaztgZ): o也包交同Date 8 Time o 上祟力建 VoriablQ ohora^ers (10COO) Charaaefi(20) l-nase 100i Variable character (1000) V 言蕓j.招
9、生 mm轉(zhuǎn)息記錄 ? 「里ID Characteft (2C) ?發(fā)送人 Chiroctorz (20) ?安次人 Chvocteo (20) ?丹叁 van a Die cnarsaen(OOOC) 、? 3MWB! Dale & Time . Cbaacters(20) CbB*AetAf? ((5) Cba*octeo(20) vanaoe crs-acters(20) Variabe c^a-acters (50C) Vfiriaha c±flractofc (20) J8 看一
10、 三、邏輯設(shè)計(jì) 由以上概念設(shè)計(jì)模型,我們可以獲得以下邏輯數(shù)據(jù)模型( LDM tMB8 >裝廣 "4出礴 ? ¥> q也用n凋 --u總與司 al前曾 門(mén) nHadan _2£ 一 ch&T*「停二違 0T-HK3Jsl ".■(■,Un -n qD-uHG 再I(mǎi)T--。 O軍占$窘7 &£c訃3『T蒼 口m E T-m r . ii 4 0 □ It &- 1 0 H R 1 A r i ii ■ 口 i i; 日 n n 4 口 d U rv e a r i f y J 1
11、 3 Li ■ ¥ ■ "" A 盾 n j u $ * ii AIA破.聲 沖.掂—前ma 口牙比里白WElhJr M Tuu fEERH 中黑a0曾Pr-T-HMI P青 崎 v&dA'ble cT LJ生,SKiO dLllraE I?|而皿皿In- "ns 計(jì) eM機(jī) Own:廿 tts =-31 ? IT? oHHiR T 一^ ? 年<14<七吊。者 U-^SAHS ,n^ 曄2gn1■早二|1|n」 Q.1JUH15" ?導(dǎo)嚼 前nsDgarBJQ毀 一*|口13號(hào) 二 F Iliff U 祐U I . ——r;- cka-rE?s-* c
12、tlraL-Ers 二" 9**?-as 2ch DzianT-rw <1西江小笈5 Mes d.ll°5t.iiL* 年lff:DIII1B1 艮EArzay 春1>'■■ s??a里二 ? HH0W_5?£_G5 nd ◎stall?山m. . 1 2 9as^3 片‘ ■CJhTEWn20』 一3番±1昌 -1 言》 h-" b■啟4 -flns Gd_EdiErs E.. *nT Blur*dK^ -H) V^r-PIF, EilEacian -{Mq一 <嗝O3m 噌號(hào)£ 匕'I'?工N 色-fljllu cl仔?中』 力帝?as y w. n _.20b
13、將而a J吊 5r 占 200- o tr 1■?蛇 ,占甲 *lqs*is ls&3§
14、^ A? 口胃鼻冠lizFa*口 外鞫 MH- r MUS char-3 w Jl * -ocharyw fc-E-w 手E_DlJi言 **c: 踣有>&W.B >麗 .HuhxEOODj 劃p:17 由 ^Tivff-3-v ,-IfflillaT-lTM 心防前R 涸 hnn ■ r*3方向不?出UM.Midi砧暗, GMESKW^ .=u%a— Em urTMM學(xué)巨 M% 云口 w_.有號(hào) A^v li-iHMlli-u. 立 飛 郭 6 Aarfa^ 稿 BJC" dl、-0 AM 鼻 A? Jr415』(KXS) MITlWE 陽(yáng)酒 J> euXLal
15、/ AffMtrDly Il/ 叼科Tr西鼻 廿hary Al1寺 V 廿 If■ OMAi 修Mc?rdMrt293 小麻髀的 so&Bff 腳Iv制SI 修川?1-1j.r!:二 四.。- Q c*w¥ 4IV ff口 孰胃? JUJD Asv 痢科停蜘1?%叫一吵》 潭& A ch#4整 埼“中山 rmtvnETmo 注鐘 dpIJtlm* LWrGlu豈三片「「;7 二 一口 .luErs m
16、F I ri* * M.E 從如% 注后.E i.'117 - 廣/1>中小律—招,|!-%中抑,誨|?強(qiáng)小 If'”阿 3 01 h#—臀鬻 R 恂羯iwll-ff富IliF - J一一可-smrt ba-=i垢G YL 1 菖. 厚4I,E 尸審h)ll_KJI回”號(hào)由 惜少>>)|臉曲q$4¥ 帶冷*I.JtE也* mLllaInQ£l-plr>士. 心 k. H n my " WRa總MII的竹RAa.a 壬? 尋藥曲<獸?。X34O) ,SW4^ ffav 在PDW顯示了個(gè)表單之間的引用關(guān)系,其具體引用如下表:
17、 標(biāo)間關(guān)系名稱(chēng) 父表格 子表格 關(guān)注 用戶(hù)信息 關(guān)注 關(guān)注 公眾號(hào)信息 關(guān)注 發(fā)送 公眾號(hào)信息 公眾號(hào)消息記錄 發(fā)送/接收 用戶(hù)信息 普通消息記錄 發(fā)送消息 用戶(hù)信息 群聊消息記錄 收藏 用戶(hù)信息 收藏信息 查看 聯(lián)系人信息 普通消息記錄 用戶(hù)存放 用戶(hù)信息 『搖信息 用戶(hù)所在群 用戶(hù)信息 用戶(hù)所在群 用戶(hù)所在群 微信群信息 用戶(hù)所在群 用戶(hù)所屬
18、 用戶(hù)信息 漂流瓶信息 用戶(hù)掃寸而獲得 用戶(hù)信息 『掃信息 用戶(hù)相冊(cè) 用戶(hù)信息 相冊(cè) 用戶(hù)聯(lián)系人 用戶(hù)信息 聯(lián)系人信息 群聊天記錄 微信群信息 群聊消息記錄 聯(lián)系人相冊(cè) 聯(lián)系人信息 相冊(cè) 狀取 用戶(hù)信息 附近人信息 本系統(tǒng)中使用的表單如下所示: 1、用戶(hù)信息表 Name Data Type Length P (主鍵) F (外鍵) M (/、可為空) 用戶(hù)ID char(15) 15 X X 昵稱(chēng) char(20) 20 X 頭像 long binary 二維碼名片 long
19、 binary X 我的地址 varchar(100) 100 性別 char(5) 5 X 地區(qū) varchar(20) 20 X 個(gè)性簽名 varchar(500) 500 登陸密碼 varchar(20) 20 X 2、普通消息記錄表 Name Data Type Length P F M 消息ID char(20) 20 X X 聯(lián)系人ID char(15) 15 X 用戶(hù)ID char(15) 15 X 為容 var
20、char(5000) 5,000 X 發(fā)送時(shí)間 datetime X 3、聯(lián)系人表 Name Data Type Length P F M 朋友ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 備注名稱(chēng) char(20) 20 X 標(biāo)簽 varchar(20) 20 4、公眾號(hào)信息表 Name Data Type Length P F M 公眾號(hào)ID char(20) 20 X X 公眾號(hào)名稱(chēng) char(40
21、) 40 X 5、公眾號(hào)消息記錄表 Name Data Type Length P F M 公眾消息ID char(20) 20 X X 公眾號(hào)ID char(20) 20 X 公眾消息 varchar(5000) 5,000 X 訂閱者 varchar(8000) 8,000 X 發(fā)送時(shí)間 timestamp X 6、關(guān)注表 Name Data Type Length P F M 用戶(hù)ID char(15) 15 X X X 公眾號(hào)ID ch
22、ar(20) 20 X X X 7、微信群信息表 Name Data Type Length P F M 群ID char(20) 20 X X 群名稱(chēng) char(20) 20 X 群二維碼 long binary X 群成員 varchar(1000) 1,000 X 8、用戶(hù)所在群表 Name Data Type Length P F M 用戶(hù)ID char(15) 15 X X X 群ID char(20) 20 X X X 9、群聊消息記錄
23、表 Name Data Type Length P F M 群聊消息ID char(20) 20 X X 群ID char(20) 20 X 發(fā)送人 char(20) 20 X 發(fā)送時(shí)間 timestamp X 內(nèi)容 varchar(5000) 5,000 X 10、相冊(cè)表 Name Data Type Length P F M 相冊(cè)ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 聯(lián)系人ID char(20) 20
24、 X 存放時(shí)間 timestamp X 內(nèi)容 varchar(5000) 5,000 X 11、收藏信息表 Name Data Type Length P F M 收藏ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 收藏時(shí)間 timestamp 收藏內(nèi)容 varchar(8000) 8,000 12、附近人信息表 Name Data Type Length P F M 附近人ID char(20) 20 X
25、 X 用戶(hù)ID char(15) 15 X 昵稱(chēng) char(20) 20 X 距離 integer 性別 char(5) 5 地區(qū) varchar(20) 20 個(gè)性簽名 varchar(500) 500 13、搖一搖信息表 Name Data Type Length P F M 搖一搖信息 ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 時(shí)間 timestamp 內(nèi)容 va
26、rchar(5000) 5,000 14、掃一掃信息表 Name Data Type Length P F M 掃一掃信息 ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 時(shí)間 timestamp 內(nèi)容 varchar(5000) 5,000 X 15、漂流瓶信息表 Name Data Type Length P F M 漂流瓶ID char(20) 20 X X 用戶(hù)ID char(15) 15 X 內(nèi)容
27、 varchar(5000) 5,000 X 對(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)使用 SQL Server 2008。實(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)是我們遵循3NE 數(shù)據(jù)庫(kù)設(shè)計(jì)如下圖: 3 4黨信平臺(tái) +」數(shù)據(jù)庫(kù)關(guān)量圖 尸口表 團(tuán)□此□附近人信息 +) J 6匕6公眾號(hào)消.皂:己靈 3 口此。
28、公眾號(hào)信息 3 _j晶口關(guān)注 司 3 dboKMA 國(guó)3北日霹郵信息 士二I此白苔國(guó)自息記錄 用_j此0靠融消息記錄 +1二]北口掃一3信息 +) _□此口,環(huán)畸信息 ±1 □ dbo徵信群信息 +1 3 dbcr柜冊(cè) □ □此口提T信息 由J此口用戶(hù)所在群 1 _J此0用戶(hù)信息 if LJ視圖 1、向“用戶(hù)信息”表添加記錄,模擬微信在線用戶(hù)。此次添加三個(gè)用戶(hù)作為模 擬的微信用戶(hù)。用戶(hù)基本信息如下: 日圉db□,用戶(hù)信.名 二 I 一i 到 f 用戶(hù)I。tPK, char[15L not null) i n 呢稱(chēng)(chd<2 01 not null) 圉 頭焦(binary
29、(l), null) iT1 二維膏名片(binary〔1). not null) 國(guó) 我花地址 tvarcbar(lOO), null) H 性物(chard not null] E 地區(qū)(varchar(20)t not null) 1=1 個(gè)性卷名[varthar(5OO), null) H 登陸寶毛(wanchart2O), rot null) 2、我們選取“小a”登陸微信,開(kāi)始添加聯(lián)系人。“聯(lián)系人”表保存每個(gè)用戶(hù) 的聯(lián)系人信息,這些聯(lián)系人信息皆來(lái)自用戶(hù)信息表?!靶?a”的聯(lián)系人如下表: 此表的創(chuàng)建過(guò)程如下: nst nuLlf 用用朋標(biāo) ID char H5)
30、 n9t noil f scziBtrairt p Hcarvims db*用戶(hù)宿息癰戶(hù)ID卜. 一一.1 月破ID "e -i r 用戶(hù)ID 朋友笛在名 標(biāo)箜 1 1 W0Z 0001 明B月 同學(xué) 2 0M3 0M1 NULL NULL 3、普通用戶(hù)發(fā)送消息時(shí),消息內(nèi)容將存儲(chǔ)在“普通消息記錄”表中,如現(xiàn)在“小 a”向“小b”發(fā)送一條
31、消息,然后“小b”再回復(fù)一條?!靶”也向“小c” 發(fā)送一條消息。 dbd普圜鱷記錄 臼口更I ? 聲息JD (PKd char[20j,, not null) ?聯(lián)口 (FK. chdr(151 nulD 'f 用口【D (FK. char[15)r null) 直內(nèi)容"archarf5000), not nidi) =1 發(fā)送Tj1閆汨己tetirri亡,not null] 消息? 聯(lián)系人舊用戶(hù)ID內(nèi)容 發(fā)送時(shí)間 1 「證麗30002 DM1 F午5點(diǎn)去球場(chǎng)踢球 2015-D5-K 1135:32040 2 麗而2 0001 0002 可以,下午涉場(chǎng)見(jiàn) 20154P5-
32、1011:36:17207 3 000003 0003 0W1 你好 2015-05-1012581EB3J 其中表中的外鍵約束和默認(rèn)值如下: 箱13匚GSHe 0c,百通捎 目記無(wú) 單口4 gnapgJL口t 門(mén)司fnz工g 曜丁 欣/人工匚 Humreca* 80*用戶(hù)信息 用 戶(hù)二口 sl tEE t isble dba .普通稍息布察 edd 匚口口口七匚勺七口t. 5kt E3re-ign 三口匚D) ruEuHuncun i±d用盧?信慮£用盧工「 alter table 01tle-廿通捎息記錄 ad:l 發(fā)送時(shí)間 日"“工口七 7c 、 default HMbEet
33、 在”普通消息記錄表”中也可以查詢(xún)兩個(gè)用戶(hù)之間的聊天記錄,如查詢(xún)“小 a” 和”小b ”之間的聊天記錄: II 乩工。內(nèi)容「發(fā)顏1間£工口小 儂春 「岫七a SfcMAjS m('0001\ f0002*) and 111(-0001' , *0002*) ,j55…__…_…_ ___發(fā)醫(yī)時(shí)間 1 |取而后云標(biāo)立?靄隹1 201531。11:35:32,040 VIIBIIAIBIIlUillll l&lll IlbU ■IIUdlliaMIIHIIMHIIIIKIIII iJ 2 可以,下午球場(chǎng)見(jiàn) 20154&10 11 36:17207 同樣也可以在“普通消消息記錄表”中
34、實(shí)現(xiàn)刪除消息記錄。 在“普通消息記錄”表中為了能使用戶(hù)更快的查詢(xún)自己的消息記錄, 這里創(chuàng)建 了索引。 create index用戶(hù)快速查詢(xún)記錄皿普通消息記錄f用戶(hù)1口) 4、“微信群信息”表中記錄了所有用戶(hù)創(chuàng)建的微信群的信息。由于在微信中群 成員數(shù)量當(dāng)前限制為40個(gè),在本平臺(tái)中我們?cè)O(shè)置為4個(gè)。并且每一個(gè)成員信息 由外鍵引用自“用戶(hù)信息”表。比如現(xiàn)在創(chuàng)建了兩個(gè)個(gè)微信群如下: H匕口.滯信其傳導(dǎo) 上Li列 ? 蔭口 (P<, char(2Ol not null'! 圖 辭名林(char(2D). not null) 國(guó) 群二(binary(l)f not nul
35、l) f (F< char[15), not null) f 成員2 (FK ch雨口5). nW) f OS3 (F< eh3r(151. null] f 成員4 ffK char(151 null) 田N/ 5」的柬 IT LJ觸發(fā)瞿 國(guó)用戶(hù)群信息新增 1 ? 7 番 m ? 群ID 群名禰 群二維碼成員1成員2成員3成員4 I—IM ■■ IMtd ■ | 1 1 MXW1 j 可用$碟部落 &cEF DW1 OMH W03 NULL 2 oS)02" 足避球部蓬 QcBF M)C1 0002 MULL NULL 外鍵約束和非空約束如下: £uf 旦.二汽 信信信
36、百君苣聲名 -一11=5=足=£二■ 領(lǐng)禪 <0?fl-*Qlp ilzer column chir (15 noz 口3口口 Till 戶(hù)戶(hù)戶(hù)戶(hù) URFRFT 息息息息 信信信信 川戶(hù)戶(hù)戶(hù) he?rr 喙己可 ccmBLrdlnt ug】rot-elgn i 1) e■1史愛(ài)W工皿 a;dd G^mstr^irt 二『7 £口「<1口11 key 嗔1年 fu 察看口仁七 m dh■: sdd ccnstrsizt 5-yS :ioixLg key xcfcscnccj db^ 三 Ed szrutrslzt sy a ^arexqn. key zeTerence
37、s dtni 由于當(dāng)用戶(hù)創(chuàng)建了一個(gè)微信群后要在 “用戶(hù)所在群”表中顯示出每個(gè)用戶(hù)所在的群, 因此需 創(chuàng)建一個(gè)觸發(fā)器。在此創(chuàng)建的 trigger為“用戶(hù)信息新增”。代碼如下: 口叫「徵信平告】 GO 口匕:Trigger 【位u】* |用戶(hù)群息?漸增 I Sacxp^ Da^.bi 05-工。l&ta&il? ,,備? 5ET Air3T_WULLS ON so SET GU0TED_I3€;niFIE.R QX 8 esltzr s.m- —“1」用戶(hù)打信息新噌二 皿『血:】J睜輜七息】 ror insert aa cfe^lar- 'Squn^d 2har JO) r
38、 ?c:\lLldl chAr 11 S;i F $cy2 Id ehi.r IS. , @cylld char 1 !1 ; f 9 -741 d ehar ;15> select Wqiinid一群TD? *eyli 1- r &cy2 id-2^ ^,r 4 £t&h inaerted xf?Saylid 19 nn: null t?gin insert, into dbn .用戶(hù)所在群 用戶(hù)I口(工口) yh1u?s ; 9-箱.i d.外」nid) end £工 ? ?cy2i d 工 2 口:二 u.ull begin maert into dbo.用戶(hù)所在群 用戶(hù)?1
39、口 .群建value a 8cy2i2期a”nid) end r£ I 2 c2,'3 It!口- - iiu.ll begin iuert mt= db*用戶(hù)所在群用戶(hù),匚群“ Tallies :0“”d 尸 gun工 d] end ifi aisl -:」| :...:! begin xxLsext izitz: dh:i .月戶(hù)所在群 用戶(hù)1匚 群工匚 vaLue b ?cy4^dF '^crLinid; -fiQil 5、“用戶(hù)所在群”表存儲(chǔ)了每個(gè)用戶(hù)所在的群信。每個(gè)用戶(hù)可根據(jù)此表查詢(xún)所 在群信息。當(dāng)一個(gè)微信群被創(chuàng)建后在“用戶(hù)所在群”表中將自動(dòng)顯示用戶(hù)所在群 信息。
40、 =1 _ db.用戶(hù)哥在摩 日口列 ?用戶(hù)[D (PK. F《char(15); ntrt null) ?群[力(PK, FK, char^OL not null] g 巾卡 | UJ 1 用戶(hù)2 群ID 1 \W] ,! 0D0D1 2 0002 W001 3 0003 CMK01 4 0001 M002 5 0002 W002 6、“群聊消息記錄表”記錄了每個(gè)群的消息。也可以查詢(xún)歷史記錄。比如在群 “羽毛球部落”中的消息記錄 三口列 / BMK;當(dāng)息ID (PK, char(20)P not null) ?群ID (FKr 小時(shí)
41、??贚 null] H 費(fèi)送人(char(2D), not null] 囪 內(nèi)容(varchart5000)P not null) J 宣野1 間(small datetime, null] -- ■ J-F11 群哪肖息ID 群舊 發(fā)送人 內(nèi)容 發(fā)送時(shí)間 1 [OOWDOOOOI \ DOMI 小日 明天去打羽毛球 2015-05-1D 15:48:00 2 OWOOM2 D&M7 小b 下午去 201^)6-10 154500 3 (wocoowm 0OTQ1 小C 可以 201M5-10 1543:00 4 DOtMDDtXX
42、M DCHM1 小。 下午3點(diǎn) 2015^1015:50:00 為了使得用戶(hù)在查詢(xún)?nèi)簹v史消息時(shí)更加快速,創(chuàng)建索引。 sc index群消息快速查詢(xún)on如□.群聊梢息記錄(群工因 7、“公眾號(hào)信息”表記錄了所有公眾號(hào)的信息??梢酝ㄟ^(guò)搜索公共號(hào)ID或名稱(chēng) 來(lái)訂閱公眾號(hào)。 日口列 ?公眾號(hào)2 (P6丑3, not null〕 J (char(401 not null) 8、“關(guān)注”表中,存儲(chǔ)了每個(gè)用戶(hù)訂閱的公眾號(hào)。 3 □ dbQ.關(guān)注 臼一列 g 用戶(hù)1口 (PK. F& char(15), not null) ?公有【口 伊K FK, char(20)J not n
43、ull) 」落果消息 1 用戶(hù)心 1?■ 1 imillBifl ■■■■ HUBI| \ 0001 公氽^口 QOT1 2 0002 0002 3 0001 QM3 d (KXM 9、“公眾號(hào)消息記錄”存儲(chǔ)公眾號(hào)為訂閱者發(fā)送的消息 E 口 db?公眾號(hào)j省息記錄 日口列 I 公觸息ID CP< char^O), net null) ?公眾號(hào)ID (FK, char^OX null) _2 公眾消.皂(varcbar(5OOO)r net null] J 發(fā)送藥間 ftimestamp, not null) 公眾消息ID公眾號(hào)ID公眾消息
44、 OOO&DODM 0M2 秋假安排 廉政建設(shè) 發(fā)送時(shí)間 題 1541Moi收 17:00 20154&10 1€:1&00 WDOOOD06 0004 深程計(jì)劃 201W51D 16:18:00 10、其余各表分別存儲(chǔ)每個(gè)用戶(hù)在微信中的信息, 通過(guò)外鍵引用來(lái)確定每個(gè)表中 各個(gè)用戶(hù)的信息,其具體結(jié)構(gòu)如下: d昌db.附近人信息 日口列 f 附(PK, chariot)], not null) f用戶(hù)【CUFK,小苜r(15h mil) 圖 昵稱(chēng)[char[20], not null ? ID 建至 frit null] S) ftBl (char(5L nu
45、ll] 國(guó)地區(qū)(varchar(20)j null) 國(guó)個(gè)性簽名(varcharfSOO), nullj 二I db口醬惹信息 臼LJ列 f 漂(P& chartiO]. not null) f 用戶(hù)】D (F兄 charCIS), null) ?1 內(nèi)客[vartzhaHSOOO] rot null] d」m口掃T信息 日口列 V 掃一S信副。(PK char(201 not null] * 用戶(hù)ID (國(guó) chartl^ null) 囿內(nèi)容(var匚har(5W01 not null] 3 rfi? (sinalldatetime, null) ■Urfr =
46、1 口 日口列 t (PK char(2D)T not null) ,用戶(hù)ID(F區(qū)小ar(l辦null) 3 L西內(nèi)容(vairha180001 null) fl 晚演門(mén)閆(sHnalldaletime. null] 上二1 dbc1靠?jī)?cè) 日口列 ?醐【D (PK ckar(20)J rrot null) f 用戶(hù)舊(FK, charCIS], null) 31 寮莖人□ yharQO] null) 3]內(nèi)容(varchartSOOOJj not null) 3 存,放時(shí)向 Csmall datetime, null) U二i d ba延一備信息 臼u列 ?授T信息m (PK char^oi not null) ?用戶(hù)IB (F& c*r(15),「則 S 內(nèi)容即L50TO, null) J 酎間(smalldatetime, null) 一」 「?? Mi 以上即為微信數(shù)據(jù)庫(kù)平臺(tái)的簡(jiǎn)單的物理設(shè)計(jì),在具體物理設(shè)計(jì)實(shí)現(xiàn)時(shí)根據(jù)具 體需要對(duì)數(shù)據(jù)路平臺(tái)的邏輯設(shè)計(jì)進(jìn)行了部分修改,也更加具體化了數(shù)據(jù)庫(kù)功能。 本數(shù)據(jù)庫(kù)只是簡(jiǎn)單的對(duì)微信平臺(tái)數(shù)據(jù)庫(kù)的實(shí)現(xiàn),其中還存在許多不足和缺陷 需進(jìn)一步完善。最后,通過(guò)此次數(shù)據(jù)庫(kù)的設(shè)計(jì)實(shí)現(xiàn)進(jìn)一步熟悉了數(shù)據(jù)庫(kù)相關(guān)的知 識(shí)及數(shù)據(jù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)
copyright@ 2023-2025 zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有 聯(lián)系電話(huà):18123376007
備案號(hào):蜀ICP備2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)
本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!