版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> X X X X大學(xué)</b></p><p><b> 畢 業(yè) 論 文</b></p><p><b> 二〇一二年六月</b></p><p> 基于PHP的微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 專業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)58班 <
2、/p><p> 姓 名: 高磊 </p><p> 指導(dǎo)教師: </p><p><b> 信息學(xué)院</b></p><p><b> 摘 要</b></p><p> 微博,是微型博客
3、的簡稱,是一個(gè)基于用戶關(guān)系的信息分享、傳播以及獲取平臺(tái),用戶以文字的形式更新信息,并實(shí)現(xiàn)即時(shí)共享。微博的公開性和即時(shí)性使其成為目前發(fā)展最為迅猛的互聯(lián)網(wǎng)業(yè)務(wù)。</p><p> PHP是一種運(yùn)行于服務(wù)器端的HTML嵌入式腳本描述語言,相較于傳統(tǒng)的動(dòng)態(tài)解析語言,PHP擁有更好的穩(wěn)定性和可操作性,運(yùn)行效率更高;MySQL是一個(gè)最受歡迎的開源數(shù)據(jù)庫管理系統(tǒng),任何人都可以從Hitemet上下載和使用MySQL而不需要支付
4、任何費(fèi)用。本文中將介紹常見的建立PHP+MySQL運(yùn)行環(huán)境的方法以及如何在PHP中調(diào)用MySQL存儲(chǔ)過程和函數(shù)完成微博系統(tǒng)的開發(fā)。</p><p> 本文所論述系統(tǒng)開發(fā)的核心內(nèi)容就是以PHP語言和MySQL數(shù)據(jù)庫為基礎(chǔ),結(jié)HTML、CSS、JavaScript等語言實(shí)現(xiàn)將微博用戶的最新信息即時(shí)傳遞給微博的關(guān)注者,讓微博用戶可以即時(shí)的看到關(guān)注對象的最新信息(包括用戶的個(gè)人信息,發(fā)布新鮮事,轉(zhuǎn)發(fā)好友的新鮮事,評論,
5、回復(fù)等信息)的功能。注冊用戶能通過好友管理找朋友(支持按條件篩選),對你喜歡的用戶添加關(guān)注,發(fā)布帶話題和圖片的微博消息,評論你看到的用戶發(fā)布的消息,回消息和查看私信等。復(fù)對你的評論,可以給你關(guān)注的微博用戶發(fā)站內(nèi)私信,查看個(gè)人首頁,查看回復(fù)。</p><p> 關(guān)鍵字:微博; 互聯(lián)網(wǎng) ;PHP ;MySQL</p><p><b> Abstract</b><
6、/p><p> Micro-Bo is the abbreviation of Microblogging . It's a platform based on customer relationship for information sharing,dissemination and access.Users can update the information in the form of text,
7、 and instant sharing. The openness and immediacy of the microblogging make it become the most rapid development of Internet business.</p><p> PHP is a HTML embedded script description language running on th
8、e server .Compared with dynamic analysis language,PHP has a better stability and maneuverability. Its running is more efficient.MySQL is a most popular open source database management system. Anyone can download it from
9、hitemet and there is no need to pay any money to use this popular open source database management system . This paper will introduce the common method of establishing PHP+MySQL operating environment and how to call M<
10、/p><p> The core of the system development content discussed in this paper is based on PHP language and MySQL database.HTML、CSS and JavaScript realize the function of instantly transmitting micro-blog users
11、' latest information to micro-blog followers .This function can let the micro-blog users see the concerned micro-blog users' latest information (Including personal information of the users,releasing fresh things
12、,forwarding friends' fresh things, comments, reply and other information ).Registered u</p><p> Key words: Microblog; Internet; PHP ; MySQL</p><p><b> 目錄</b></p><p&g
13、t;<b> 第1章 緒論7</b></p><p> 1.1 微博概述7</p><p> 1.2 選題背景7</p><p> 1.3 課題研究意義8</p><p> 第2章相關(guān)技術(shù)介紹8</p><p> 2.1開發(fā)環(huán)境與平臺(tái)8</p><p
14、> 2.2系統(tǒng)開發(fā)工具9</p><p> 2.2.1 PHP介紹9</p><p> 2.2.2 Apache服務(wù)器10</p><p> 2.2.3 MySQL數(shù)據(jù)庫11</p><p> 2.2.4 B/S(Browser/Server)結(jié)構(gòu)11</p><p> 2.2.5
15、 CSS布局方法12</p><p> 第3章 系統(tǒng)分析13</p><p> 3.1 需求分析13</p><p> 3.2 系統(tǒng)目標(biāo)14</p><p> 第4章 系統(tǒng)設(shè)計(jì)15</p><p> 4.1 總體功能設(shè)計(jì)15</p><p> 4.2 系統(tǒng)模塊功能詳細(xì)設(shè)計(jì)
16、16</p><p> 4.2.1登錄注冊模塊16</p><p> 4.2.2登錄后首頁模塊17</p><p> 4.2.3個(gè)人微博信息模塊18</p><p> 4.2.4微博模塊18</p><p> 4.2.5好友管理模塊18</p><p> 4.2.6博文管
17、理模塊19</p><p> 4.3 數(shù)據(jù)庫設(shè)計(jì)19</p><p> 4.3.1數(shù)據(jù)字典20</p><p> 4.3.2 數(shù)據(jù)庫實(shí)體關(guān)系23</p><p> 4.3.3 數(shù)據(jù)庫模型24</p><p> 4.4 數(shù)據(jù)流程設(shè)計(jì)25</p><p> 4.5 人機(jī)界
18、面設(shè)計(jì)26</p><p> 第5章 編碼實(shí)現(xiàn)27</p><p> 5.1系統(tǒng)運(yùn)行環(huán)境27</p><p> 5.2 數(shù)據(jù)庫建設(shè)28</p><p> 5.2.1 數(shù)據(jù)庫的建立28</p><p> 5.2.2 數(shù)據(jù)庫表的建立28</p><p> 5.2.3 視圖的
19、建立29</p><p> 5.3 數(shù)據(jù)操作29</p><p> 5.4 人機(jī)界面34</p><p> 5.4.1 注冊登錄頁34</p><p> 5.4.2 微博主頁面35</p><p> 5.4.3 修改個(gè)人信息頁面35</p><p> 5.4.4 好友
20、管理頁面36</p><p> 5.4.5 發(fā)布微博頁面37</p><p> 5.4.6私信管理頁面37</p><p> 5.4.7相冊管理頁面37</p><p> 第6章 系統(tǒng)測試38</p><p> 6.1 測試目的及方法38</p><p> 6.2 測
21、試要點(diǎn)與用例38</p><p> 6.3 測試結(jié)果39</p><p><b> 結(jié)束語40</b></p><p> ?。?)設(shè)計(jì)成果與學(xué)習(xí)收獲40</p><p> ?。?)存在問題與改進(jìn)思路41</p><p> 1從微博用戶體驗(yàn)方面41</p><
22、p> 2從微博數(shù)據(jù)結(jié)構(gòu)優(yōu)化方面41</p><p><b> 致謝42</b></p><p><b> 參考文獻(xiàn)43</b></p><p><b> 第1章 緒論</b></p><p><b> 1.1 微博概述</b><
23、;/p><p> 微博,是微型博客的簡稱,是一個(gè)基于用戶關(guān)系的信息分享、傳播以及獲取平臺(tái),用戶可以通過WEB、WAP以及各種客戶端組件個(gè)人社區(qū),以少量文字更新信息,并實(shí)現(xiàn)即時(shí)分享。現(xiàn)在微博已經(jīng)成為了人們生活中不可或缺的一部分,亦是人們交流互相了解對方新聞的快速途徑。</p><p> 微博剛剛走進(jìn)人們的視野就得到了人們的青睞。微博廣泛的分布在桌面、瀏覽器、移動(dòng)終端等多個(gè)平臺(tái)上,用戶基數(shù)大,
24、用戶可以以迅速的方式隨時(shí)隨地了解不同地方的新聞,或者朋友的最新動(dòng)態(tài),也可以快速的發(fā)布自己的所見所聞跟所有人分享。微博符合了大多數(shù)人如今的需求,快速、便捷,而且其原創(chuàng)性高,隨時(shí)記錄隨時(shí)分享。</p><p> 2009年隨著3G(3rd-generation)技術(shù)的成熟和牌照的發(fā)放,正式拉開了中國移動(dòng)互聯(lián)網(wǎng)時(shí)代的序幕。作為新生事物的“微博”以其簡單易用性、廣泛的影響力、快速傳播力等,迎合了互聯(lián)網(wǎng)時(shí)代的發(fā)展,迅速
25、成為了互聯(lián)網(wǎng)新興起的一種集成化、開放化的互聯(lián)網(wǎng)社交服務(wù),被譽(yù)為一場“正在爆發(fā)的互聯(lián)網(wǎng)革命”。 </p><p> 2010年國內(nèi)微博迎來發(fā)展的春天。微博像雨后春筍般崛起,新浪、搜狐、網(wǎng)易、騰訊、鳳凰、和訊、搜房等綜合門戶均開始推出微博產(chǎn)品。雖然只有幾年時(shí)間,但中國微博用戶量發(fā)展迅猛,據(jù)上海交通大學(xué)輿情研究實(shí)驗(yàn)室近日出爐的《2010中國微博年度報(bào)告》顯示,目前中國微博活躍用戶數(shù)量僅2010年上半年就已從一千萬增至
26、一千二百萬[1]。</p><p> 中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布的《第28次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》示,2011年上半年,中國微博用戶從6331萬增至1.95億,增長約2倍。該《報(bào)告》指出,中國互聯(lián)網(wǎng)的普及率增至36.2%,較2010年增加1.9%。2011年上半年,我國微博用戶數(shù)量從6331萬增至1.95億,半年增幅高達(dá)208.9%。微博在網(wǎng)民中的普及率從13.8%增至40.2%[2]。&l
27、t;/p><p><b> 1.2 選題背景</b></p><p> 在美國硅谷創(chuàng)辦的Twitter是微博界的首創(chuàng)者,同時(shí)也是現(xiàn)在世界上用戶規(guī)模最大的微博網(wǎng)站,在全球120多個(gè)國家擁有至少超過18種語言的用戶。而微博發(fā)展到如今,Twitter已經(jīng)有了許多不同的競爭對手,如Tumblelog等國外的微博網(wǎng)站。等等國外的微博網(wǎng)站。國內(nèi)從2007年第一家?guī)в形⒉┥实娘?/p>
28、否網(wǎng)開始,到2010年微博迎來春天,國內(nèi)的微博網(wǎng)站也已經(jīng)普及。其中的佼佼者也有不少,如隨心微博,被譽(yù)為國內(nèi)最好、最主流、最受歡迎的清新、簡約時(shí)尚微博網(wǎng)站,"隨心"的寥言片語與朋友們一起分享生活中的心情點(diǎn)滴.可通過Web、客戶端、手機(jī)等更新收發(fā)微博。僅僅在中國,截止2011年2月,已經(jīng)突破2億的微博用戶。</p><p> 國內(nèi)外的微博網(wǎng)站,主流都是基于PHP開發(fā)的,有部分則是用ASP來開發(fā)。
29、而相較于ASP,PHP有著不少優(yōu)勢。如高級(jí)內(nèi)存管理,在IIS4下,一個(gè)ASP腳本header.asp,如果被20個(gè)頁面所包含,那么運(yùn)行的時(shí)候,在內(nèi)存當(dāng)中會(huì)保留這20個(gè)header.asp的編譯副本,IIS5解決了這個(gè)問題,但只有windows2000才支持IIS5,由于這種IIS5的不能向下兼容的原因,許多服務(wù)器仍然要使用IIS4下的低級(jí)的內(nèi)存管理。而在PHP中,不會(huì)存在這種問題,只有當(dāng)require時(shí),才會(huì)調(diào)用某個(gè)include文件。
30、又如PHP的運(yùn)行速度比ASP快,PHP是開放源代碼的編程語言。ASP和PHP都是中型網(wǎng)站的較理想的解決方案,但PHP與MySQL的緊密結(jié)合使PHP更加優(yōu)越[3]。PHP有許多管理和維護(hù)MySQL的工具,對MySQL的支持是最全面的。許多有用的函數(shù)如mysql_insert_id和mysql_affected_rows等,其他的數(shù)據(jù)庫則沒有。因此,在未來很長的一段時(shí)間內(nèi),使用PHP來開發(fā)微博必定還是主流。</p><p
31、> 其中,對于微博研究的重點(diǎn)還在于海量數(shù)據(jù)的存儲(chǔ)以及數(shù)據(jù)關(guān)系的操作效率。</p><p> 1.3 課題研究意義</p><p> 中國微博市場尚處于用戶培養(yǎng)期,用戶粘性和用戶行為延續(xù)性都還需要進(jìn)一步提高。國內(nèi)微博市場的巨大潛力還有待開發(fā)。另一方面雖然目前已有初步成熟的微博平臺(tái),但這些微博平臺(tái)多是娛樂型性質(zhì),針對某一特定領(lǐng)域的內(nèi)容型、應(yīng)用型和商務(wù)型微博還未有足夠發(fā)展。 <
32、/p><p> 微博系統(tǒng)在此背景下應(yīng)運(yùn)而生,它實(shí)現(xiàn)了目前多數(shù)微博系統(tǒng)所具有的基本功能,提供了一個(gè)便捷、開放、可獨(dú)立部署和運(yùn)營的微博平臺(tái)建站系統(tǒng)和解決方案,并有助于在此基礎(chǔ)上針對某一特定領(lǐng)域進(jìn)行二次開發(fā)。</p><p><b> 第2章相關(guān)技術(shù)介紹</b></p><p> 2.1開發(fā)環(huán)境與平臺(tái)</p><p> 本
33、系統(tǒng)是基于windowsXP操作系統(tǒng)、PHP的開發(fā)語言、Apache服務(wù)器、MySQL數(shù)據(jù)庫開發(fā)的,PHP可以在多種系統(tǒng)平臺(tái)上運(yùn)行,APache服務(wù)器是世界上使用最多的web服務(wù)器,PHP能夠作為仰acheweb服務(wù)器的模塊執(zhí)行,使得它的執(zhí)行效率要高于普通的CGI程序,使用PHP進(jìn)行開發(fā)前需建立其工作環(huán)境,而PHP的工作環(huán)境的建立比較的繁瑣[4]。目前只需安裝XAMPP即可,XAMPP是一個(gè)功能強(qiáng)大的建站集成軟件包。它可以在Window
34、s、Linux、solaris三種操作系統(tǒng)下安裝使用,支持多語言:英文、簡體中文、繁體中文、韓文、俄文、日文等。它集成了Apache服務(wù)器、MySQL數(shù)據(jù)庫、pHp開發(fā)語言、pERL語言。Apaehe作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是自由或開放源碼軟件,因此大大降低了使用成本,可以方便快捷地建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。</p><p><b>
35、 2.2系統(tǒng)開發(fā)工具</b></p><p> 2.2.1 PHP介紹</p><p> PHP是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用[5]。其特點(diǎn)為:</p><p> (1)PHP獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)新的語法。</p><
36、;p> (2)用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多。</p><p> (3)PHP執(zhí)行引擎還會(huì)將用戶經(jīng)常訪問的PHP程序駐留在內(nèi)存中,其他用戶再一次訪問這個(gè)程序時(shí)就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是PHP高效率的體現(xiàn)之一。</p><p> (4)PHP
37、具有非常強(qiáng)大的功能,而且支持幾乎所有流行的數(shù)據(jù)庫以及操作基于PHP招生管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)。</p><p> (5)開放的源代碼,及所有的PHP源代碼事實(shí)上都可以得到。</p><p> (6)PHP是免費(fèi)的,并且使用非常廣泛。</p><p> (7)PHP是基于服務(wù)器端的,因此即使再多的用戶,再復(fù)雜的程序也不會(huì)影響運(yùn)行的速度。綜上所述PHP與其他
38、語言相比首先它可以用在任何操作系統(tǒng)上,穩(wěn)定性較高,執(zhí)行效率快,開發(fā)時(shí)間短,學(xué)習(xí)門檻低,函數(shù)支持多等優(yōu)點(diǎn)。</p><p><b> PHP的工作原理:</b></p><p> 第一步:客戶向Web服務(wù)器發(fā)出請求。瀏覽器將此PHP請求傳送給支持PHP的web服務(wù)器。</p><p> 第二步:Apache服務(wù)器分析客戶的請求,若為PHP文
39、件,則將其交給PHP處理程序進(jìn)行處理。</p><p> 第三步:所有同數(shù)據(jù)庫相關(guān)的操作,都由PHP來完成。PHP可以很好地完成同數(shù)據(jù)庫的交互。</p><p> 第四步:PHP從數(shù)據(jù)庫中取得數(shù)據(jù)后,將文件內(nèi)容轉(zhuǎn)化為HTML格式。</p><p> 第五步:將HTML格式的文件交給Apache服務(wù)器。</p><p> 第六步:Apa
40、che服務(wù)器再將其送給客戶。</p><p> 圖2.1 PHP工作原理圖</p><p> PHP 獨(dú)特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。PHP安裝它可以比CGICommon Gate Interface或者 Perl 更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁。用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTM
41、L標(biāo)記的CGI要高許多,PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn)而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。 </p><p> 至PHP5.0版本時(shí),PHP已經(jīng)非常全面地支持面向?qū)ο蟮脑O(shè)計(jì)思想。PHP由于代碼開源免費(fèi)、開發(fā)快捷高效、跨平臺(tái)性強(qiáng)等特點(diǎn),已經(jīng)成為WEB開放主流腳本語言之一,近年來已經(jīng)出現(xiàn)以PHP技術(shù)為核心的
42、大型商業(yè)應(yīng)用案例。故本系統(tǒng)根據(jù)系統(tǒng)特點(diǎn)決定采用PHP作為開發(fā)語言[6]。</p><p> 2.2.2 Apache服務(wù)器</p><p> Apache是目前互聯(lián)網(wǎng)上使用最廣泛的web服務(wù)器,它支持多種操作系統(tǒng),如:Unix、Linux、Windows等,功能強(qiáng)大。它以快速、可靠、易擴(kuò)展的特點(diǎn)在所有的服務(wù)器軟件中占有優(yōu)勢,并且它的源代碼開放,因此有大量的開發(fā)人員投入了大量的時(shí)間精力
43、來逐步的將其完善,Apache不僅可作為web服務(wù)器,它還包含了代理服務(wù)器的功能。當(dāng)客戶機(jī)使用URL請求訪問遠(yuǎn)程資源時(shí),Apache接受該請求并取得該資源以滿足客戶機(jī)的請求。同時(shí)如果要?jiǎng)?chuàng)建一個(gè)每天有數(shù)百萬人訪問的Web服務(wù)器,Apache將是最佳選擇。本系統(tǒng)就是以Apache作為開發(fā)平臺(tái)的,因?yàn)镻HP能夠作為Apache web服務(wù)器的模塊執(zhí)行,使得它的執(zhí)行效率要高于其他的CGI程序,而且能比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁。Ap
44、ache、PHP在實(shí)際應(yīng)用中為最佳組合。</p><p> 2.2.3 MySQL數(shù)據(jù)庫</p><p> MySQL是一個(gè)最受歡迎的開源數(shù)據(jù)庫管理系統(tǒng),任何人都可以從hitemet上下載和使用MySQL而不需要支付任何費(fèi)用。同時(shí)也可以研究其源代碼,并根據(jù)需要進(jìn)行修改。與其他的大型數(shù)據(jù)庫相比,MySQL自有它的不足之處,如規(guī)模小、功能有限但對于中、小型應(yīng)用系統(tǒng)是非常理想的,開源性降低
45、了總體成本。它具有功能強(qiáng)、使用簡便、管理方便、運(yùn)行速度快、安全可靠性強(qiáng)等優(yōu)點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。</p><p><b> MySQL特點(diǎn):</b></p><p> 1.使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性?! ?lt;/p><p> 2.支持AIX、Fr
46、eeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng) ?! ?lt;/p><p> 3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 </p><p> 4.支持多線程,充分利用CPU資源?!?
47、lt;/p><p> 5.優(yōu)化的SQL查詢算法,有效地提高查詢速度。 </p><p> 6.既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。 </p><p> 7.提供TCP/IP、ODBC和J
48、DBC等多種數(shù)據(jù)庫連接途徑。 </p><p> 8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具?! ?lt;/p><p> 9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。 </p><p> 10.支持多種存儲(chǔ)引擎。</p><p> 11.MySQL是開放源碼軟件,建站成本低。</p><p> 2.2.
49、4 B/S(Browser/Server)結(jié)構(gòu)</p><p> B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。這種結(jié)構(gòu),建立在廣域網(wǎng)之上的,有著更強(qiáng)的適應(yīng)范圍,客戶一般只要有操作系統(tǒng)和瀏覽器就行,可以在任何地方操作,不需要安裝專門的軟件,特別是現(xiàn)在軟件系統(tǒng)的改進(jìn)和升級(jí)越來越頻繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)的更方便的特性
50、[7]。無論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會(huì)增加任何維護(hù)升級(jí)的工作量,所有的操作只需要針對服務(wù)器進(jìn)行,而作為客戶端,只需安裝瀏覽器,瀏覽器通過W服務(wù)器同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換,B/S結(jié)構(gòu)與C/S結(jié)構(gòu)相比大大降低了維護(hù)成本,特別是從Windows98開始,將瀏覽器植入到系統(tǒng)中,B/S這種結(jié)構(gòu)就更加成為當(dāng)前應(yīng)用軟件的首選體系結(jié)構(gòu)。</p><p> BIS系統(tǒng)常常采用的三層體系結(jié)構(gòu),這三層體系結(jié)構(gòu)在層與層之間相互
51、獨(dú)立,任何一層的改變不會(huì)影響其他層的功能[14]。相應(yīng)的,一個(gè)web工程的開發(fā)中也存在同樣的三層邏輯結(jié)構(gòu)。</p><p> (l)數(shù)據(jù)訪問層:實(shí)現(xiàn)對數(shù)據(jù)的訪問功能,如增刪改查數(shù)據(jù)。</p><p> (2)業(yè)務(wù)邏輯層:實(shí)現(xiàn)業(yè)務(wù)的具體邏輯功能,如考生成績管理等。</p><p> (3)頁面顯示層:將業(yè)務(wù)功能在瀏覽器上漂亮的顯示出來,如分頁顯示考生信息。利用P
52、HP技術(shù)實(shí)現(xiàn)的WEB瀏覽頁本身就具備多頁面、可視化編程的要求友好的界面有利于開發(fā)的人性化[8]。</p><p> 圖2.2三層體系架構(gòu)示意圖</p><p> 2.2.5 CSS布局方法</p><p> CSS是cascading style sheets(層疊樣式表)的簡稱,語言是一種標(biāo)記語言,它不需要編譯,可以直接由瀏覽器解釋執(zhí)行,簡單來說CSS可以
53、使一個(gè)普通的網(wǎng)頁通過添加CSS規(guī)則從而得到美觀的網(wǎng)頁[9],同時(shí)還可以通過添加不同的CSS規(guī)則,不需要改變HTML就可以改變整個(gè)網(wǎng)頁的整體布局,減少工作量。</p><p> 使用DW+CSS布局的優(yōu)勢的體現(xiàn):</p><p> (l)頁面樣式調(diào)整更方便:這樣更加方便維護(hù),只需改變幾個(gè)CSS文件即可將網(wǎng)站的樣式進(jìn)行調(diào)整。使得修改頁面的時(shí)候更加省時(shí)、方便,如果對部分布局進(jìn)行修改,也不會(huì)破
54、壞頁面其他部分的布局樣式。</p><p> (2)頁面容量小,代碼簡潔:這樣可以提高瀏覽頁面的速度,同時(shí)也提高了搜索引擎對網(wǎng)頁內(nèi)容的搜索。</p><p> (3)符合W3C標(biāo)準(zhǔn):這樣就保證了網(wǎng)絡(luò)應(yīng)用升級(jí)但網(wǎng)站不會(huì)被淘汰。</p><p> (4)支持瀏覽器向后兼容。</p><p><b> 第3章 系統(tǒng)分析</b
55、></p><p><b> 3.1 需求分析</b></p><p><b> 1. 可用性 </b></p><p> 微博系統(tǒng)應(yīng)對所有使用用戶提供及時(shí)的服務(wù)。系統(tǒng)應(yīng)保證對24小時(shí)運(yùn)作的客服系統(tǒng)的服務(wù),系統(tǒng)維護(hù)時(shí)間應(yīng)計(jì)劃在服務(wù)的最低峰時(shí)間;讓用戶盡快地得到需要的信息,頁面具有一致的使用風(fēng)格,對用戶可能出錯(cuò)的
56、地方有預(yù)先的分析與防范,使用戶得到較好的用戶體驗(yàn)。 </p><p><b> 2. 響應(yīng)時(shí)間 </b></p><p> 進(jìn)行數(shù)據(jù)查詢時(shí),當(dāng)處于系統(tǒng)使用高峰期時(shí)應(yīng)保證系統(tǒng)具有對95%的數(shù)據(jù)交互查詢,更新提供3秒或更短響應(yīng)時(shí)間的支持,當(dāng)處于系統(tǒng)使用低峰期時(shí)應(yīng)保證系統(tǒng)具有對95%的數(shù)據(jù)交互查詢,更新提供2秒或更短響應(yīng)時(shí)間的支持[10]。當(dāng)進(jìn)行數(shù)據(jù)添加、更新時(shí),系統(tǒng)內(nèi)
57、部應(yīng)提供對請求處理的來源及響應(yīng)時(shí)間的監(jiān)控機(jī)制。系統(tǒng)響應(yīng)時(shí)間因不同外部數(shù)據(jù)源和使用系統(tǒng)的通訊和接口情況而有所差異。 </p><p><b> 3. 可靠性 </b></p><p> 微博系統(tǒng)不應(yīng)在正常操作中丟失數(shù)據(jù),當(dāng)用戶正在使用系統(tǒng)時(shí),系統(tǒng)不應(yīng)癱瘓,應(yīng)能夠保證在線用戶及時(shí)得到關(guān)注對象發(fā)布信息的推送,保證編碼、語言正確,用戶關(guān)注關(guān)系不混亂。 </p>
58、;<p><b> 4. 易于使用性 </b></p><p> 微博系統(tǒng)應(yīng)有操作故障排除手冊來幫助系統(tǒng)管理人員來快速解決系統(tǒng)問題。系統(tǒng)的管理和操作界面應(yīng)易于使用。對95%的數(shù)據(jù)交互查詢,更新提供2秒或更短響應(yīng)時(shí)間的支持[10]。當(dāng)進(jìn)行數(shù)據(jù)添加、更新時(shí),系統(tǒng)內(nèi)部應(yīng)提供對請求處理的來源及響應(yīng)時(shí)間的監(jiān)控機(jī)制。系統(tǒng)響應(yīng)時(shí)間因不同外部數(shù)據(jù)源和使用系統(tǒng)的通訊和接口情況而有所差異。 &
59、lt;/p><p><b> 3. 可靠性 </b></p><p> 微博系統(tǒng)不應(yīng)在正常操作中丟失數(shù)據(jù),當(dāng)用戶正在使用系統(tǒng)時(shí),系統(tǒng)不應(yīng)癱瘓,應(yīng)能夠保證在線用戶及時(shí)得到關(guān)注對象發(fā)布信息的推送,保證編碼、語言正確,用戶關(guān)注關(guān)系不混亂。 </p><p><b> 4. 易于使用性 </b></p><
60、p> 微博系統(tǒng)應(yīng)有操作故障排除手冊來幫助系統(tǒng)管理人員來快速解決系統(tǒng)問題。系統(tǒng)的管理和操作界面應(yīng)易于使用。 </p><p><b> 5. 可擴(kuò)展性 </b></p><p> 系統(tǒng)建設(shè)不僅要著眼于現(xiàn)在,而且要放眼未來,因此系統(tǒng)建設(shè)不僅要滿足現(xiàn)在的要求,而且要具有向未來技術(shù)平滑過渡的能力。即:該系統(tǒng)的建立一定要具備良好的可擴(kuò)展性,當(dāng)信息量上升、網(wǎng)絡(luò)規(guī)模擴(kuò)大
61、時(shí),可方便地將服務(wù)器及其他設(shè)備進(jìn)行升級(jí)服務(wù),滿足日益增長的業(yè)務(wù)需求,最大限度保護(hù)投資。 </p><p> 6. 備份和災(zāi)難的及時(shí)恢復(fù) </p><p> 微博系統(tǒng)應(yīng)每天對所有運(yùn)作相關(guān)的數(shù)據(jù)進(jìn)行備份,以及備份的微博系統(tǒng),防止運(yùn)行系統(tǒng)癱瘓時(shí)能及時(shí)使用備份數(shù)據(jù)庫重新提供系統(tǒng)的服務(wù)。</p><p><b> 3.2 系統(tǒng)目標(biāo) </b><
62、/p><p> 本文是針對目前國內(nèi)主流微博產(chǎn)品所具備的主要特點(diǎn)和功能進(jìn)行設(shè)計(jì),具有對微博、話題、群組、好友等完整的功能,應(yīng)具備如下特點(diǎn): </p><p> 1. 完備的系統(tǒng)功能 </p><p> 本系統(tǒng)是一個(gè)功能完備的微博網(wǎng)站,可用于建站運(yùn)行,也可在此基礎(chǔ)上方便地進(jìn)行二次開發(fā)。 </p><p> 2. 靈活的系統(tǒng)設(shè)置 </p
63、><p> 系統(tǒng)管理員可以根據(jù)需要,對于系統(tǒng)靈活地進(jìn)行各種配置,例如開閉用戶注冊、過渡關(guān)鍵詞、系統(tǒng)名稱等,方便建站。 </p><p> 3. 個(gè)性的個(gè)人管理 </p><p> 用戶不僅可以設(shè)置昵稱、性別、頭像等基本信息,而且可以修改個(gè)人基本信息和詳細(xì)信息。 </p><p> 根據(jù)本文應(yīng)具備的特點(diǎn),現(xiàn)提出主要目標(biāo)如下: </p
64、><p> 1. 實(shí)現(xiàn)基礎(chǔ)功能,便于二次開發(fā)。任何一款互聯(lián)網(wǎng)產(chǎn)品都有特定應(yīng)用領(lǐng)域,特定用戶群體及其需求。而本系統(tǒng)的定位于實(shí)現(xiàn)目前多數(shù)微博系統(tǒng)所具備的基本功能,并使其框架結(jié)構(gòu)具備靈活、易用性、擴(kuò)展性等特點(diǎn),以便其它用戶在此基礎(chǔ)上針對具體應(yīng)用進(jìn)行二次開發(fā)。 </p><p> 2. 博文應(yīng)具備多媒體形式,含文字、圖片、表情等。微博的主要特點(diǎn)之一在于其具有“平民化”的特點(diǎn),因而博文需要承載豐富的
65、內(nèi)容。這便要求對于博文的信息呈現(xiàn)具有多樣的形式。所以除了文字以外,還需要有圖片等多媒體呈現(xiàn)形式,和表情、分享等為滿足“娛樂化”的功能。 </p><p> 3. 本系統(tǒng)應(yīng)該具備向用戶推薦好友、博文、話題等功能。當(dāng)新用戶注冊登錄后,需要有人性化的引導(dǎo)過程,其中應(yīng)當(dāng)包括推薦好友功能。另外,推薦好友、博文、話題等,應(yīng)當(dāng)放到系統(tǒng)醒目位置,以便更加人性地服務(wù)用戶,增加用戶體驗(yàn)。 </p><p>
66、 4. 本系統(tǒng)提供關(guān)注好友功能以及群組功能。微博平臺(tái)主要以廣播用戶消息為主,故采用單向關(guān)注即允許在未經(jīng)被關(guān)注者同意之下對其關(guān)注。而群組功能,則類似于討論組,由管理員針對某一特定關(guān)系群體創(chuàng)建,可由用戶對群組廣播消息,其它用戶可查看群組消息。 </p><p> 5. 用戶提供對博文多種多樣的操作。當(dāng)關(guān)注者對于某條博文非常感興趣或觀點(diǎn)而希望能夠表達(dá)其想法時(shí),本系統(tǒng)應(yīng)當(dāng)提供一些簡單、便捷的使用方式,系統(tǒng)并可據(jù)此從
67、而決定推薦關(guān)注度非常高的博文給所有用戶。 </p><p> 6. 允許用戶就某一話題發(fā)表相關(guān)博文。由于博文限定140字,內(nèi)容雖小,但數(shù)據(jù)量非常大,難以形成針對某一話題的相關(guān)應(yīng)用。故需提供話題功能,以便系統(tǒng)對博文進(jìn)行良好的組織,并從而為用戶提供話題搜索等相關(guān)功能。</p><p><b> 第4章 系統(tǒng)設(shè)計(jì)</b></p><p> 4.
68、1 總體功能設(shè)計(jì)</p><p> 本系統(tǒng)設(shè)計(jì)主要圍繞著用戶體驗(yàn)的良好性,和網(wǎng)絡(luò)數(shù)據(jù)的輕便性開展。</p><p> 圖4.1微博系統(tǒng)總體功能示意圖</p><p> 系統(tǒng)主要功能模塊有:</p><p> 零級(jí)頁面:登錄頁面和注冊頁面</p><p><b> 一級(jí)頁面:</b><
69、;/p><p> 微博首頁:顯示關(guān)注對象的微博日志更新以及最新的評論和回復(fù),顯示自己的關(guān)注人數(shù)量,顯示新私信,顯示操作按鈕與其他頁面的鏈接。</p><p><b> 二級(jí)頁面:</b></p><p> 個(gè)人首頁:可以更改個(gè)人信息,包括頭像修改,密碼修改,昵稱、郵箱、性別、院系、社團(tuán)、籍貫等個(gè)人信息的修改。</p><p
70、> 微博發(fā)布:發(fā)布頁面可以發(fā)表微博和日志。</p><p> 好友管理:用戶可以對自己感興趣的人加關(guān)注,查看自己的關(guān)注對象以及關(guān)注自己的人,可以針對專業(yè)、社團(tuán)、地區(qū)等條件篩選用戶。</p><p> 相冊管理:通過相冊管理可以上傳、查看、下載、刪除圖片。</p><p> 站內(nèi)私信:相當(dāng)于郵箱功能,可以管理收件箱、發(fā)件箱,可以發(fā)送私信、接受私信,可以從
71、關(guān)注人列表添加收信人。</p><p><b> 三級(jí)頁面:</b></p><p> 評論與回復(fù):用戶可以對自己感興趣的微博日志進(jìn)行評論,對評論可以進(jìn)行回復(fù)。</p><p> 4.2 系統(tǒng)模塊功能詳細(xì)設(shè)計(jì)</p><p> 功能模塊獨(dú)立的概念是功能模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。</p&g
72、t;<p> 抽象是指對事物、狀態(tài)或過程之間所存在的某些相似的方面集中和概括起來,暫時(shí)忽略他們之間的差異,即考慮抽象事物的本質(zhì)特征而暫時(shí)不考慮他們的細(xì)節(jié)。信息隱蔽是指再設(shè)計(jì)功能模塊時(shí)使得一個(gè)功能模塊內(nèi)所包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的功能模塊來說是不能訪問的[11]。信息隱蔽原則對于以后在軟件維護(hù)期間修改軟件時(shí)會(huì)帶來極大的好處,因?yàn)榇罅繑?shù)據(jù)和過程是軟件的其他部分所不能覺察的,因此再對某個(gè)功能模塊修改時(shí)就不大
73、會(huì)影響到軟件的其他部分,所謂局部化是指把一些關(guān)系密切的軟件兀素在物理位置上彼此靠近。</p><p> 功能模塊獨(dú)立性好的軟件接口簡單,易十編制,獨(dú)立的功能模塊也比較容易測試和維護(hù),限制了功能模塊之間由十聯(lián)系緊密而引起的修改副作用。獨(dú)立性是保證軟件質(zhì)量的重要因素。</p><p> 4.2.1登錄注冊模塊</p><p><b> 1. 注冊 <
74、;/b></p><p> 對于初次使用微博系統(tǒng)的用戶,在用戶數(shù)據(jù)庫中無該用戶的信息。用戶注冊功能,是該微博系統(tǒng)的最初始的功能。管理員通過用戶注冊功能,數(shù)據(jù)庫中登記用戶信息,在數(shù)據(jù)庫中有注冊信息的用戶才允許使用微博系統(tǒng)進(jìn)行使用。</p><p> 用戶注冊時(shí),包括注冊登錄賬號(hào)和用戶密碼兩項(xiàng)信息。其中所鍵入的用戶名需要在檢索數(shù)據(jù)庫相應(yīng)表數(shù)據(jù)后進(jìn)行提示是否可用,保證用戶名的唯一性。&
75、lt;/p><p><b> 2. 登錄 </b></p><p> 登錄主要功能是驗(yàn)證用戶身份并登錄系統(tǒng)。登錄系統(tǒng)時(shí),若為已注冊用戶,則輸入登錄名、密碼和驗(yàn)證碼并提交,系統(tǒng)進(jìn)行數(shù)據(jù)校驗(yàn)。若其驗(yàn)證碼輸入正確且登錄名和密碼同數(shù)據(jù)庫中的一致,則進(jìn)入個(gè)人主頁。若不一致,則提示錯(cuò)誤原因,提示用戶檢查登錄名和密碼或驗(yàn)證碼錯(cuò)誤,重新登錄。若用戶沒有注冊,則需完成填寫新用戶的相關(guān)資
76、料,完成用戶注冊后再進(jìn)行登錄。</p><p> 圖4.2三微博系統(tǒng)用戶登錄流程圖</p><p> 4.2.2登錄后首頁模塊</p><p><b> 1.用戶微博發(fā)表</b></p><p> 對于已經(jīng)登錄的用戶,可以發(fā)表自己的微博消息,這個(gè)消息出現(xiàn)在自己的微博消息記錄中,關(guān)注該用戶的用戶消息中,隨機(jī)到打聽中
77、。</p><p><b> 2.用戶微博評論</b></p><p> 對于已經(jīng)登錄的用戶,可以對其他用戶的微博消息進(jìn)行評論,也可以對其他用戶對自己的評論進(jìn)行評論。</p><p><b> 3.用戶微博轉(zhuǎn)發(fā)</b></p><p> 對于已經(jīng)登錄的用戶,可以對其他用戶的微博消息進(jìn)行轉(zhuǎn)發(fā)。
78、</p><p> 4.2.3個(gè)人微博信息模塊</p><p> 管理用戶信息主要功能是維護(hù)用戶相關(guān)的信息。在管理用戶信息模塊中,分</p><p> 為基本信息、頭像設(shè)置、推薦自己等三個(gè)子模塊?;拘畔⒛K用于對用戶昵稱、性別和自我介紹等信息的顯示與維護(hù),其中自我介紹限定140字,用戶昵稱限定10個(gè)字以內(nèi)的數(shù)字、字母和漢字的組合。頭像設(shè)置用于上傳并修改用戶頭
79、像。系統(tǒng)將用戶放置到查找好友模塊的推薦好友中。</p><p><b> 4.2.4微博模塊</b></p><p> 微博模塊是整個(gè)系統(tǒng)的核心,主要有發(fā)送功能、存儲(chǔ)功能、修改刪除功能、引用其它資源功能。</p><p> 1.微博消息的發(fā)布功能。新建一條微博,并將微博發(fā)送到服務(wù)器上,所有關(guān)注的用戶都能夠即時(shí)收聽到這條微博信息。一條微博的
80、總字?jǐn)?shù)不能超過140個(gè)字符。如果超過了140個(gè)字符,系統(tǒng)將不允許用戶繼續(xù)輸入。</p><p> 2.微博消息的存儲(chǔ)功能。用戶的所有微博話題將會(huì)永久保存在系統(tǒng)的服務(wù)器上。系統(tǒng)會(huì)滾動(dòng)顯示最近的微博信息。</p><p> 3.微博消息的修改與刪除功能。用戶發(fā)送微博話題后,可以對這個(gè)話題進(jìn)行編輯,如修改和刪除等。修改時(shí),字符總數(shù)不能超過系統(tǒng)允許的140個(gè)字符。</p><
81、;p> 4.微博消息的引用其他資源功能。微博可以包含其它資源信息,比如圖片、視頻、系統(tǒng)會(huì)在其它資源表中保存資源信息,在微博正文的表中,只保存這些資源的鏈接。</p><p> 圖4.3微博模塊結(jié)構(gòu)功能圖</p><p> 4.2.5好友管理模塊</p><p> 圖4.4 好友管理模塊結(jié)構(gòu)功能圖</p><p> 關(guān)注模塊,展
82、現(xiàn)了用戶和用戶之間的關(guān)系。在系統(tǒng)中,有關(guān)注者和被關(guān)注者兩種用戶狀態(tài)。關(guān)注模塊,主要的功能是關(guān)注、分類、取消關(guān)注等功能。</p><p> 1.關(guān)注功能,提供用戶的關(guān)注行為。用戶在使用系統(tǒng)的過程中,可以關(guān)注某用戶,或者關(guān)注某群。用戶在注冊的時(shí)候,默認(rèn)關(guān)注了所在的院校。關(guān)注好友功能向用戶提供對其它用戶進(jìn)行關(guān)注其微博動(dòng)態(tài)的功能,被關(guān)注者的微博信息將顯示在關(guān)注者的最新博文以及好友博文中。 </p><
83、;p> 2.分類,在自己所關(guān)注的用戶中,可以將所關(guān)注的用戶進(jìn)行分類。以及管理分類。</p><p> 3.取消關(guān)注,指取消關(guān)注某用戶,即不再收聽該用戶的微博話題。</p><p> 4.2.6博文管理模塊</p><p> 管理博文主要功能是向用戶提供對博文進(jìn)行的各種相關(guān)操作。在管理博文中,分為發(fā)表博文、刪除博文、評論博文、評價(jià)博文等五項(xiàng)功能。其中,發(fā)
84、表微</p><p> 博功能用于已登錄用戶發(fā)表微博其中微博可含有表情、分享、圖片、話題等內(nèi)</p><p> 容。評論博文功能用于已登錄用戶對博文進(jìn)行評論。</p><p> 4.3 數(shù)據(jù)庫設(shè)計(jì)</p><p> 信息的數(shù)量越來越大,數(shù)據(jù)庫的作用越發(fā)突出,所以數(shù)據(jù)庫的建立是系統(tǒng)實(shí)施的主要部分之一。它關(guān)系到整個(gè)系統(tǒng)的運(yùn)行情況,是整
85、個(gè)系統(tǒng)的重要組成部分。信息管理系統(tǒng)離不開數(shù)據(jù)庫,它保存系統(tǒng)用到的數(shù)據(jù)。數(shù)據(jù)庫只是一個(gè)容器,它是數(shù)據(jù)表的集合。數(shù)據(jù)庫一經(jīng)創(chuàng)建,用戶就可以在數(shù)據(jù)庫中創(chuàng)建應(yīng)用系統(tǒng)制作所需要的數(shù)據(jù)表。本系統(tǒng)所用數(shù)據(jù)庫為My SQL,數(shù)據(jù)庫名為weblog。共7張表,包括用戶信息表user,關(guān)注關(guān)系表follow,用戶私信表message,用戶相冊表image,微博日志內(nèi)容(主題列表)表mood,評論內(nèi)容表comment,回復(fù)內(nèi)容表response等。</
86、p><p><b> 4.3.1數(shù)據(jù)字典</b></p><p> 微博系統(tǒng)需要管理的內(nèi)容包括用戶、微博、評論、回復(fù)、好友關(guān)系等微博系統(tǒng)信息,通過對微博內(nèi)容的分析,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:</p><p> ?。?)用戶信息:包括的數(shù)據(jù)項(xiàng)有系統(tǒng)編號(hào)、昵稱、密碼、頭像、性別,所在地,個(gè)人說明等。</p><p> ?。?/p>
87、2)照片信息:包括的數(shù)據(jù)項(xiàng)有照片編號(hào)、照片路徑、添加時(shí)間、照片描述。</p><p> (3)評論信息:包括評論編號(hào)、用戶編號(hào)、添加時(shí)間、評論內(nèi)容。 </p><p> ?。?)關(guān)注用戶信息:包括的數(shù)據(jù)項(xiàng)有系統(tǒng)編號(hào)、用戶編號(hào)、微博內(nèi)容、用戶類型和發(fā)布時(shí)間。
88、</p><p> ?。?)微博消息:包括的數(shù)據(jù)項(xiàng)有系統(tǒng)編號(hào)、發(fā)布用戶編號(hào)、發(fā)布時(shí)間和發(fā)布的微博內(nèi)容。</p><p> 針對以上數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng),數(shù)據(jù)字典的詳細(xì)設(shè)計(jì)如下:</p><p><b> 用戶信息</b></p><p> 表4-1用戶信息設(shè)計(jì)表</p><p> 含義說明:描
89、述用戶的性質(zhì)、用戶信息。</p><p><b> 2.博文日志</b></p><p> 表4-2微博日志設(shè)計(jì)表</p><p> 含義說明:描述微博日志的內(nèi)容與性質(zhì)。</p><p> 備注:whos是user的外鍵。</p><p><b> 關(guān)注關(guān)系</b>
90、</p><p> 表4-3關(guān)注關(guān)系設(shè)計(jì)表</p><p> 含義說明:描述關(guān)注者與被關(guān)注者之間的關(guān)系。</p><p> 備注:followe和follower 是user表的外鍵。</p><p><b> 評論內(nèi)容</b></p><p> 表4-4評論內(nèi)容設(shè)計(jì)表</p>
91、;<p><b> 回復(fù)內(nèi)容</b></p><p> 表4-5回復(fù)內(nèi)容設(shè)計(jì)表</p><p><b> 用戶相冊</b></p><p> 表4-5用戶相冊設(shè)計(jì)表</p><p><b> 用戶私信</b></p><p>
92、表4-6用戶私信設(shè)計(jì)表</p><p> 關(guān)注者微博列表(視圖)</p><p> 表4-7關(guān)注者微博列表設(shè)計(jì)表</p><p> 說明:首頁需要顯示已關(guān)注對象的最新微博、頭像及評論等信息,信息分布在不同的表中,需要各表遞進(jìn)查找,建立視圖使查詢更加有效率更加方便。</p><p> 4.3.2 數(shù)據(jù)庫實(shí)體關(guān)系 </p>
93、<p> 本數(shù)據(jù)庫根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:用戶實(shí)體(包括關(guān)注用戶實(shí)體)、評論實(shí)體、回復(fù)實(shí)體、微博消息實(shí)體、相冊實(shí)體、私信實(shí)體等。各個(gè)主要實(shí)體具有的描述E-R圖及其之間的關(guān)系描述如下。</p><p> 圖4.5數(shù)據(jù)庫ER圖</p><p> 由于其他實(shí)體屬性較為簡單,現(xiàn)只列出用戶實(shí)體與微博實(shí)體屬性。</p><p> 4.3.3 數(shù)據(jù)庫模型&
94、lt;/p><p> 在數(shù)據(jù)庫信息特點(diǎn)的基礎(chǔ)上可以得到數(shù)據(jù)庫模型圖,以便于編碼實(shí)現(xiàn):</p><p> 圖4.6 數(shù)據(jù)庫模型圖</p><p> 4.4 數(shù)據(jù)流程設(shè)計(jì)</p><p> 數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程[12],由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。
95、它描述信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過程中所經(jīng)受的變換。</p><p> 本系統(tǒng)的核心流程是用戶用自己的用戶名與密碼登錄微博系統(tǒng),系統(tǒng)將登錄頁傳來的用戶名和密碼與user表中的關(guān)鍵字進(jìn)行比對,如果比對成功則進(jìn)入微博主頁面,若不成功跳轉(zhuǎn)到注冊頁面。進(jìn)入主頁面根據(jù)頁面?zhèn)髦怠坝脩鬷d”在follow表中獲取關(guān)注人列表,進(jìn)而獲取關(guān)注人最新微博以及最新的評論與回復(fù),形成關(guān)注人微博列表在主頁面進(jìn)行顯示。</p>
96、;<p> 下圖刻畫了本系統(tǒng)的詳細(xì)數(shù)據(jù)流程設(shè)計(jì):</p><p> 圖4.7 系統(tǒng)數(shù)據(jù)流程圖</p><p> 注:方框表示外部實(shí)體,橢圓表示數(shù)據(jù)處理,雙橫線表示數(shù)據(jù)庫,箭頭表示數(shù)據(jù)流動(dòng)方向。</p><p> 4.5 人機(jī)界面設(shè)計(jì)</p><p> 人機(jī)界面設(shè)計(jì)要求如下:</p><p>
97、采用符合網(wǎng)絡(luò)用戶登錄習(xí)慣設(shè)計(jì)UI,并增加系統(tǒng)記錄賬戶功能以達(dá)到方便快速登錄和注冊的目的,在開始就給用戶清晰爽快的操作體驗(yàn)。</p><p> 登錄后首頁來到用戶自己和所關(guān)注的用戶的微博列表頁面,有快捷發(fā)送微博的輸入框,很方便的輸入新的微博信息并發(fā)布</p><p> 系統(tǒng)個(gè)人微博信息模塊,此模塊可以顯示個(gè)人信息及修改完善個(gè)人信息。</p><p> 話題模塊頁
98、面包括發(fā)表話題博文、瀏覽話題列表、瀏覽話題博文、對感興趣的博文進(jìn)行評論,發(fā)布者對評論進(jìn)行回復(fù)。 </p><p> 通過用戶好友管理頁面用戶可以對其他用戶添加關(guān)注,查看其他用戶對自己的關(guān)注量,管理好友名單。屬于互動(dòng)性模塊設(shè)計(jì)。</p><p> 相冊頁面要求圖片展示不失真,圖片切換流暢,上傳、刪除、下載按鈕明顯易操作。</p><p><b> 第5
99、章 編碼實(shí)現(xiàn)</b></p><p><b> 5.1系統(tǒng)運(yùn)行環(huán)境</b></p><p> 硬件環(huán)境如表5-1所示:</p><p> 表 0-1 硬件環(huán)境</p><p> 軟件環(huán)境如表5-2所示:</p><p> 表 0-2 軟件環(huán)境</p><p
100、> 5.2 數(shù)據(jù)庫建設(shè)</p><p> 數(shù)據(jù)庫建設(shè)可采用MySQL的可視化界面操作,也可用SQL語言進(jìn)行操作。</p><p> 5.2.1 數(shù)據(jù)庫的建立</p><p> 運(yùn)用PHPMyAdmin在MySQL數(shù)據(jù)庫中建立weblog表:</p><p> CREATE DATABASE 'weblog'
101、; </p><p> 5.2.2 數(shù)據(jù)庫表的建立</p><p> 根據(jù)數(shù)據(jù)庫模型圖在數(shù)據(jù)庫weblog中建立各表:</p><p> 例.user表的建立</p><p> DROP TABLE IF EXISTS 'user';</p><p> CREATE TABLE 'us
102、er' (</p><p> ‘id' int(10) unsigned NOT NULL auto_increment,</p><p> 'username' varchar(40) NOT NULL,</p><p> 'userpwd' varchar(40) NOT NULL,</p>&
103、lt;p> 'sex' varchar(40) NOT NULL,</p><p> 'nickname' varchar(40) NOT NULL default '無名氏',</p><p> 'avatar' varchar(60) NOT NULL,</p><p> 's
104、ignature' varchar(300) NOT NULL,</p><p> 'age' int(11) NOT NULL,</p><p> 'email' varchar(60) NOT NULL,</p><p> 'corporation' varchar(500) NOT NULL,<
105、;/p><p> 'address' varchar(60) NOT NULL,</p><p> 'natives' varchar(40) NOT NULL,</p><p> 'college' varchar(40) NOT NULL,</p><p> 'registtim
106、e' datetime NOT NULL,</p><p> 'lasttime' datetime NOT NULL,</p><p> PRIMARY KEY ('id')</p><p> ) ENGINE=MyISAM AUTO_INCREMENT=132 DEFAULT CHARSET=utf8;</p
107、><p> 運(yùn)用同樣的方法在weblog數(shù)據(jù)庫中建立其他各表。</p><p> 5.2.3 視圖的建立</p><p> 根據(jù)前文數(shù)據(jù)庫設(shè)計(jì),需要建立關(guān)注人的微博列表potlet視圖,建立方法如下:</p><p> DROP VIEW IF EXISTS 'potlet';</p><p>
108、CREATE ALGORITHM=UNDEFINED DEFINER='root'@'localhost' </p><p> SQL SECURITY DEFINER VIEW </p><p> 'potlet' AS select 'user1'.'id' AS 'id',</p
109、><p> 'user2'.'id' AS 'followedid',</p><p> 'user2'.'avatar' AS 'avatar',</p><p> 'follow'.'remark' AS 'remark
110、9;,</p><p> 'mood'.'id' AS 'moodid' </p><p> from ((('user' 'user1' join 'user' 'user2') join 'follow') join 'mood') <
111、;/p><p> where (('user1'.'id' = 'follow'.'following') and ('user2'.'id' = 'follow'.'followed') and('mood'.'whos' = 'follow
112、9;.'followed'));</p><p> 至此,數(shù)據(jù)庫的建設(shè)工作完成。</p><p><b> 5.3 數(shù)據(jù)操作</b></p><p> 數(shù)據(jù)庫生成后,要實(shí)現(xiàn)基于Web數(shù)據(jù)庫的連接和查詢,需要用到六個(gè)函數(shù):數(shù)據(jù)庫的連接與使用、送出一個(gè)字串、取得傳回列的數(shù)目、傳回陣列資料、關(guān)閉與MySQL數(shù)據(jù)庫的連接。<
113、;/p><p> 在PHP中提供了三個(gè)函數(shù)可以給瀏覽器發(fā)送文木,它們分別是:echo, print.和printf,在本次設(shè)計(jì)中,利用了echo函數(shù)向?yàn)g覽器發(fā)送文木。</p><p> HTMIL提供了幾種通過表單從用戶獲取信息的力一法,包括文木、按鈕和選擇列表等。文件的上傳是得到表單輸入的一種特定情況,表單必須采用POST行式,本次設(shè)計(jì)上傳照片時(shí)用到了PHP中的文件上傳功能。</p
114、><p> 本系統(tǒng)采用了基于數(shù)據(jù)庫的認(rèn)證力一式,用戶登錄時(shí),先將用戶名和密碼提交數(shù)據(jù)庫進(jìn)行驗(yàn)證,如果信息無誤,則用戶登求成功。</p><p> 數(shù)據(jù)庫操作時(shí),MySQL使用工NSERT語句實(shí)現(xiàn)向表中增加記求的操作,使用UPDATE命令來改變一個(gè)表中的一行或多行。</p><p> Web服務(wù)器以緩沖形式將內(nèi)容傳向?yàn)g覽器,可以要求緩沖區(qū)被刷新。PHP用一種新的力一
115、法實(shí)現(xiàn)了對緩沖輸入的控制,木系統(tǒng)調(diào)用ob_ stat ( )函數(shù),在用到頁面重新定向的程序中使用此函數(shù),可以避免瀏覽器在傳送內(nèi)容后又傳送報(bào)頭錯(cuò)誤。</p><p> Session中文譯成“會(huì)話”,它是用戶訪問某個(gè)Web網(wǎng)站或應(yīng)用程序的過程,它具有存儲(chǔ)功能,可以在頁Ifll之間進(jìn)行參數(shù)的傳遞[12]。session在工作時(shí)要做兩件事情:session跟蹤,判斷兩個(gè)不同的腳木調(diào)用是否源于同一用戶;存儲(chǔ)信息,將和s
116、ession有關(guān)的信息存儲(chǔ)在服務(wù)器的特定位置上。</p><p> 本系統(tǒng)使用session_ start( )函數(shù)來開始一個(gè)新的session,并作為標(biāo)準(zhǔn)的全局變量使用。使用一個(gè)session變量時(shí),首先要用session_ register()函數(shù)進(jìn)行注冊;刪除一個(gè)session變量,使用session unregister()函數(shù)進(jìn)行操作,這個(gè)變量的作用域?qū)⒔Y(jié)束。</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于php的crm系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[畢業(yè)論文]
- 基于php的crm系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- [vb畢設(shè)]畢業(yè)論文管理系統(tǒng)
- 基于php的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于php的圖片共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 畢業(yè)論文——微博系統(tǒng)
- 畢業(yè)論文——微博系統(tǒng)
- 微博系統(tǒng)畢業(yè)論文
- 基于php的團(tuán)購網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】
- [delphi畢設(shè)]教學(xué)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文+源代碼
- 基于php的電子商務(wù)網(wǎng)站系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于php的電子商務(wù)網(wǎng)站系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于內(nèi)容的微博推薦系統(tǒng)-畢業(yè)論文
- 畢業(yè)論文---基于php+mysql的新聞發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于php的醫(yī)務(wù)人事管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文】
- 畢業(yè)論文-基于php+mysql的學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于php的手機(jī)商城網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 畢業(yè)論文---微博信息抓取系統(tǒng)
- 基于php的招生咨詢網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 企業(yè)法務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)---畢設(shè)論文
評論
0/150
提交評論