基于Golang的文庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)_第1頁(yè)
基于Golang的文庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)_第2頁(yè)
基于Golang的文庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)_第3頁(yè)
基于Golang的文庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)_第4頁(yè)
基于Golang的文庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

中國(guó)石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEXV基于Golang的文庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要進(jìn)入二十一世紀(jì)后,隨著計(jì)算機(jī)的普及和信息技術(shù)的發(fā)展,傳統(tǒng)的紙質(zhì)文檔已經(jīng)逐漸被電子化。在信息爆炸的時(shí)代,網(wǎng)絡(luò)上海量的信息和天文數(shù)字般數(shù)量的文檔資源在困擾著人們,人們?cè)诟釉谝馊绾慰焖俜窒砗瞳@取自己所需的資源,而文庫(kù)系統(tǒng)剛好可以滿(mǎn)足這一需求,文庫(kù)系統(tǒng)作為一個(gè)信息分享與交流的平臺(tái),可以將自己掌握的資源上傳至系統(tǒng),也可以從系統(tǒng)中搜索自己所需的資源,這樣既方便別人也方便了自己。本文在深入調(diào)研電子文檔管理的需求和業(yè)務(wù)知識(shí)后,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于B/S架構(gòu)[1],使用Golang語(yǔ)言開(kāi)發(fā)的文庫(kù)系統(tǒng)[2-3],本系統(tǒng)主要分為普通用戶(hù)和管理員兩種用戶(hù)模式,首先是普通用戶(hù),任何人均可通過(guò)郵箱驗(yàn)證后注冊(cè)成為普通用戶(hù),普通用戶(hù)可以分享文檔,也可以下載文檔,收藏文檔;其次是管理員,管理員可以管理系統(tǒng)欄目,也可以對(duì)違規(guī)內(nèi)容進(jìn)行處理,對(duì)發(fā)布違規(guī)內(nèi)容的用戶(hù)封禁。關(guān)鍵詞:Golang;文檔管理;文庫(kù)系統(tǒng);B/S架構(gòu)中國(guó)石油大學(xué)(北京)現(xiàn)代遠(yuǎn)程教育畢業(yè)設(shè)計(jì)(論文)PAGEPAGEI目錄摘要 i第一章緒論 31.1文庫(kù)系統(tǒng)的研究背景 31.2文庫(kù)系統(tǒng)的意義 31.3文庫(kù)系統(tǒng)的現(xiàn)狀 31.4文庫(kù)系統(tǒng)的功能 41.5組織架構(gòu) 4第二章相關(guān)技術(shù)介紹 62.1B/S架構(gòu) 62.1Golang 62.2數(shù)據(jù)庫(kù) 62.3開(kāi)發(fā)工具 72.3.1Goland 72.3.2Navicat 72.4其他工具和技術(shù) 72.4.1LibreOffice 72.4.1PDF2SVG 72.4.1SVG 72.4.1OSS 7第三章需求分析與設(shè)計(jì) 83.1需求分析 83.2功能設(shè)計(jì) 93.3界面設(shè)計(jì) 12第四章數(shù)據(jù)庫(kù)設(shè)計(jì) 154.1數(shù)據(jù)庫(kù)設(shè)計(jì) 154.2數(shù)據(jù)E-R圖 20第五章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 225.1用戶(hù)注冊(cè)功能實(shí)現(xiàn) 225.2用戶(hù)登錄 245.3文檔上傳 255.4文檔下載 285.5文檔查看 305.6管理員登錄 31第六章文庫(kù)系統(tǒng)測(cè)試 336.1系統(tǒng)測(cè)試的目的 336.2系統(tǒng)測(cè)試分類(lèi) 336.2文庫(kù)系統(tǒng)測(cè)試內(nèi)容 33第七章結(jié)論 34參考文獻(xiàn) 36致謝 37

第一章緒論1.1文庫(kù)系統(tǒng)的研究背景隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,傳統(tǒng)的紙質(zhì)文檔已經(jīng)不滿(mǎn)足當(dāng)前時(shí)代的需求。隨著時(shí)代的進(jìn)步,各類(lèi)文檔已經(jīng)五花八門(mén),數(shù)量也是成倍增長(zhǎng),需要有一個(gè)平臺(tái)滿(mǎn)足文檔管理、分享、下載、閱讀的基本需求。為了解決文檔在使用、管理中存在的問(wèn)題,我根據(jù)文庫(kù)管理方面需求分析,采用B/S架構(gòu),使用Golang語(yǔ)言設(shè)計(jì)并開(kāi)發(fā)了一套文庫(kù)系統(tǒng),他可以實(shí)現(xiàn)個(gè)人對(duì)文檔的分享、搜索、在線(xiàn)閱讀、收藏、下載、點(diǎn)評(píng)等操作,并具有良好的安全性、靈活性、可擴(kuò)展性及操作方便的特點(diǎn),能滿(mǎn)足大眾用戶(hù)對(duì)文檔的需求。1.2文庫(kù)系統(tǒng)的意義文庫(kù)系統(tǒng)作為一種電子文檔管理的科學(xué)解決方案,我設(shè)計(jì)和開(kāi)發(fā)這個(gè)平臺(tái),是為大家提供一個(gè)媒介、平臺(tái)。我設(shè)計(jì)這個(gè)平臺(tái)是為了改善用戶(hù)對(duì)知識(shí)和信息的分享和獲取的方式。本系統(tǒng)設(shè)計(jì)了積分系統(tǒng),用戶(hù)上傳文檔可獲得一定積分,激勵(lì)用戶(hù)分享資源,資源越多用戶(hù)也就越多,如此良性循環(huán),有利于平臺(tái)的發(fā)展。1.3文庫(kù)系統(tǒng)的現(xiàn)狀目前文庫(kù)系統(tǒng)存在百度文庫(kù)、道客巴巴、豆丁網(wǎng)等眾多在線(xiàn)文檔分享平臺(tái)[4]。這些在線(xiàn)文檔平臺(tái)是供網(wǎng)友通過(guò)互聯(lián)網(wǎng)共享、出售文檔資料的平臺(tái),通過(guò)使用這種平臺(tái),用戶(hù)可以在線(xiàn)閱讀和下載涉及課件、習(xí)題、考試題庫(kù)、論文報(bào)告、專(zhuān)業(yè)資料、各類(lèi)公文模板、法律文件等多個(gè)領(lǐng)域的資料。平臺(tái)上所累積的文檔,多來(lái)自熱心用戶(hù)的積極上傳。用戶(hù)在上傳文檔后可以獲得平臺(tái)虛擬的積分獎(jiǎng)勵(lì),虛擬積分可用于下載自己需要的其他文檔。文檔非為標(biāo)價(jià)文檔和免費(fèi)文檔,對(duì)于上傳用戶(hù)已標(biāo)價(jià)了的文檔下載時(shí)需要付出虛擬積分或者需要現(xiàn)金購(gòu)買(mǎi),而免費(fèi)文檔在登錄后不需付積分即可下載。目前的在線(xiàn)文檔共享平臺(tái)所支持的文件格式一般包括微軟0ffice、TXT、PDF等常見(jiàn)的格式。目前市面上的文庫(kù)系統(tǒng)幾乎都已經(jīng)轉(zhuǎn)為盈利模式,需開(kāi)會(huì)員或者購(gòu)買(mǎi)才可預(yù)覽和下載。1.4文庫(kù)系統(tǒng)的功能文庫(kù)系統(tǒng)使用Golang作為后端開(kāi)發(fā)語(yǔ)言,數(shù)據(jù)庫(kù)使用MariaDB,前端使用HTML,分為文庫(kù)前臺(tái)和文庫(kù)后臺(tái)。文庫(kù)前臺(tái)的功能有:用戶(hù)注冊(cè)、文檔預(yù)覽、文檔下載、文檔評(píng)價(jià)、文檔收藏及上傳文檔和上傳文檔管理。文庫(kù)后臺(tái)的功能有:文檔管理、用戶(hù)管理、橫幅管理、單頁(yè)管理、舉報(bào)管理、友鏈管理、系統(tǒng)設(shè)置。用戶(hù)未注冊(cè)時(shí),只能預(yù)覽系統(tǒng)中已存在的文檔,也可以選擇使用郵箱驗(yàn)證注冊(cè)成為文庫(kù)系統(tǒng)的用戶(hù),注冊(cè)成為用戶(hù)后,可以下載所需文檔,也可以上傳文檔。用戶(hù)上傳文檔后,文庫(kù)系統(tǒng)將會(huì)使用LibreOffice將Word/PPT/Excel文檔轉(zhuǎn)換為PDF文檔,再使用pdf2svg工具將PDF文檔轉(zhuǎn)換為SVG圖片[5-6],然后將處理后的資源上傳至阿里云OSS存儲(chǔ)。系統(tǒng)將文檔轉(zhuǎn)換成功后,前端對(duì)文檔可預(yù)覽,否則只能下載后查看。3第二章相關(guān)技術(shù)介紹2.1B/S架構(gòu) B/S架即瀏覽器和服務(wù)器架構(gòu)模式,是在互聯(lián)網(wǎng)快速發(fā)展階段對(duì)C/S架構(gòu)的一種改進(jìn),在這種架構(gòu)模式下,用戶(hù)通過(guò)瀏覽器無(wú)需安裝客戶(hù)端就可以訪(fǎng)問(wèn)系統(tǒng)。在B/S架構(gòu)下,瀏覽器端主要負(fù)責(zé)數(shù)據(jù)的渲染和交互,服務(wù)器端負(fù)責(zé)數(shù)據(jù)的處理,將核心部分都集中到了瀏覽器,簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)和維護(hù)及使用,可以有效的降低資源成本,且無(wú)需考慮跨平臺(tái)問(wèn)題。圖2-1B/S架構(gòu)圖2.1GolangGolang語(yǔ)言是Google公司推出的一種全新的靜態(tài)強(qiáng)類(lèi)型、編譯型語(yǔ)言,于2009年11月開(kāi)源,在2012年正式發(fā)布穩(wěn)定版本?,F(xiàn)在Golang是一個(gè)開(kāi)放且活躍的社區(qū)。Golang語(yǔ)言簡(jiǎn)潔、快速、安全,并且還有自動(dòng)垃圾回收、類(lèi)型與接口、并發(fā)編程、反射等語(yǔ)言特性。它只有25個(gè)關(guān)鍵字,語(yǔ)法簡(jiǎn)潔、清晰、靈活高效。其并發(fā)機(jī)制可以很容易地編寫(xiě)高并發(fā)程序?,F(xiàn)在Golang已經(jīng)在分布式系統(tǒng)、網(wǎng)絡(luò)編程、云平臺(tái)、云原生、區(qū)塊鏈等領(lǐng)域成為主流,主流互聯(lián)網(wǎng)公司都在使用Golang進(jìn)行一些核心系統(tǒng)的研發(fā)。2.2數(shù)據(jù)庫(kù)文庫(kù)系統(tǒng)是以數(shù)據(jù)庫(kù)為中心的B/S架構(gòu)的應(yīng)用,文庫(kù)系統(tǒng)在設(shè)計(jì)時(shí)選擇了MariaDB進(jìn)行系統(tǒng)數(shù)據(jù)庫(kù)管理。MariaDB是MySQL數(shù)據(jù)庫(kù)的一個(gè)分支,主要由開(kāi)源社區(qū)維護(hù),并且完全兼容MySQL,性能上更優(yōu)于MySQL。MariaDB的運(yùn)行速度快、資源占用少、使用成本低,在各類(lèi)型公司、網(wǎng)站均有使用。2.3開(kāi)發(fā)工具2.3.1GolandGoLand是一個(gè)非常適用于Golang的開(kāi)發(fā)工具,它功能十分強(qiáng)大。Goland集成了Golang的研發(fā)環(huán)境,具有代碼管理、調(diào)試開(kāi)發(fā)、代碼提示等功能,使用Goland能顯著提高Go程序的研發(fā)效率。2.3.2NavicatNavicat是一個(gè)數(shù)據(jù)庫(kù)管理工具,可以對(duì)MySQL、MariaDB、SQLite、SQLServer、PostgreSQL等不同類(lèi)型的數(shù)據(jù)庫(kù)進(jìn)行管理和開(kāi)發(fā)。Navicat提供數(shù)據(jù)建模、數(shù)據(jù)傳輸、數(shù)據(jù)同步、導(dǎo)入、導(dǎo)出、備份、還原等功能,通過(guò)可視化操作界面可以非常簡(jiǎn)單且安全的方法操作數(shù)據(jù)庫(kù)。2.4其他工具和技術(shù)2.4.1LibreOfficeLibreOffice是一款自由、免費(fèi)、開(kāi)源、跨平臺(tái)的辦公套件,能在Windows、macOS、Linux等多個(gè)操作系統(tǒng)、平臺(tái)上運(yùn)行,是OpenOffice是衍生品。LibreOffice能很好的兼容doc/docx、xls/clsx等專(zhuān)業(yè)格式,并支持將導(dǎo)入的文檔轉(zhuǎn)換為PDF文檔。文檔轉(zhuǎn)換命令如下:soffice--headless--invisible--convert-topdf:writer_pdf_Export{{目標(biāo)文件}}--outdir{{輸出目錄}}2.4.1PDF2SVGpdf2svg是一個(gè)在開(kāi)源且支持將PDF轉(zhuǎn)換為SVG矢量圖的工具。2.4.1SVGSVG是一種矢量圖形的文件格式,用于將PDF文檔轉(zhuǎn)換為一張張SVG圖片分頁(yè)預(yù)覽。SVG與PNG、JPEG等圖片格式相比,圖片放大后不會(huì)失真,文件體積也會(huì)更小。2.4.1OSSOSS是阿里云提供的對(duì)象存儲(chǔ)服務(wù),OSS能提供安全、低成本、高可靠的存放服務(wù),文庫(kù)系統(tǒng)通過(guò)OSS提供的API可以將頭像、文檔等靜態(tài)資源存儲(chǔ)到云端,使文庫(kù)系統(tǒng)可以實(shí)現(xiàn)分布式部署,能高效、穩(wěn)定、高可用的為用戶(hù)提供服務(wù)。第三章需求分析與設(shè)計(jì)3.1需求分析3.1.1會(huì)員需求在了解用戶(hù)對(duì)文庫(kù)系統(tǒng)的功能需求及期待,經(jīng)多次調(diào)研得出用戶(hù)對(duì)本系統(tǒng)的要求主要有:用戶(hù)可以通過(guò)郵箱驗(yàn)證后注冊(cè)成為文庫(kù)系統(tǒng)的會(huì)員用戶(hù),并能保證用戶(hù)賬戶(hù)及用戶(hù)信息的安全。如果忘記密碼還能通過(guò)郵箱重新設(shè)置密碼。用戶(hù)可以通過(guò)搜索功能找到自己所需的資源,并可以在線(xiàn)預(yù)覽、下載、點(diǎn)評(píng)、收藏。用戶(hù)可以上傳文檔資源進(jìn)行資源分享,并可以獲得積分獎(jiǎng)勵(lì)。 根據(jù)分析,得到如圖3-1所示需求,用戶(hù)可以通過(guò)登錄窗口進(jìn)入文庫(kù)系統(tǒng),如沒(méi)有賬號(hào)則可以注冊(cè)成為文庫(kù)系統(tǒng)的會(huì)員,如果密碼忘記可以通過(guò)郵箱重新設(shè)置密碼,可以使用本系統(tǒng)對(duì)文檔上傳、下載、查看及管理資源等操作。會(huì)員可以上傳Word、Excel、PPT、PDF、TXT文檔,上傳時(shí)選擇資源所屬頻道和文庫(kù)所屬分類(lèi),文檔上傳系統(tǒng)后,用戶(hù)將獲得一定積分獎(jiǎng)勵(lì),系統(tǒng)也將對(duì)文檔進(jìn)行轉(zhuǎn)換為SVG矢量圖,方便用于預(yù)覽。用戶(hù)可以根據(jù)資源所屬欄目和分類(lèi)或者資源關(guān)鍵詞進(jìn)行搜索,搜索到符合的文檔資源是可以預(yù)覽、點(diǎn)評(píng)或下載資源,對(duì)于設(shè)置需要使用積分下載的文檔,將對(duì)個(gè)人積分進(jìn)行扣除,如積分不夠則不允許下載,用戶(hù)還可以創(chuàng)建收藏夾分類(lèi)收藏文檔。圖3-1會(huì)員需求圖3.1.2管理員需求管理員是系統(tǒng)的主宰,如圖3-2所示,根據(jù)文庫(kù)系統(tǒng)管理員權(quán)限設(shè)定,管理員可以查看文庫(kù)系統(tǒng)用戶(hù)和文檔數(shù)據(jù)的統(tǒng)計(jì),管理文庫(kù)頻道及其分類(lèi),并可以對(duì)文檔進(jìn)行刪除操作,或移入回收站,對(duì)注冊(cè)進(jìn)行管理,對(duì)用戶(hù)進(jìn)行封禁和積分管理,可以管理首頁(yè)橫幅廣告,可以接收前臺(tái)會(huì)員用戶(hù)的舉報(bào),對(duì)違規(guī)文檔進(jìn)行處理,以及對(duì)系統(tǒng)常規(guī)管理和設(shè)置,例如云存儲(chǔ)配置和郵箱設(shè)置等。圖3-2管理員需求圖3.2功能設(shè)計(jì)3.2.1用戶(hù)登錄注冊(cè)登錄注冊(cè)模塊用例圖如圖3-3所示。圖3-3(1)注冊(cè)功能設(shè)計(jì)用戶(hù)初次使用文庫(kù)系統(tǒng)需要先進(jìn)行賬號(hào)注冊(cè),注冊(cè)需要使用郵箱,文庫(kù)系統(tǒng)會(huì)向該郵箱發(fā)送驗(yàn)證碼,后端檢測(cè)郵箱和驗(yàn)證碼是否匹配,匹配即注冊(cè)成功,可使用郵箱和密碼來(lái)進(jìn)行登錄。(2)登錄功能設(shè)計(jì)用戶(hù)注冊(cè)成功后,可使和密碼進(jìn)行登錄,登錄成功后即可進(jìn)入系統(tǒng)主頁(yè)面。(3)忘記密碼功設(shè)計(jì)用戶(hù)若忘記密碼,可以點(diǎn)擊忘記密碼來(lái)重置密碼。系統(tǒng)會(huì)向用戶(hù)的郵箱發(fā)送隨機(jī)驗(yàn)證碼,當(dāng)用戶(hù)郵箱和驗(yàn)證碼匹配通過(guò)后即可重置密碼。3.2.2文檔轉(zhuǎn)換用戶(hù)分享的文檔上傳至文庫(kù)系統(tǒng)后,系統(tǒng)將在后臺(tái)將其轉(zhuǎn)換為SVG圖片,如圖3-4所示,如果上傳的文檔為Word、Excel、TXT類(lèi)型的文檔將通過(guò)LibreOffice轉(zhuǎn)換為PDF,然后通過(guò)pdf2svg將其轉(zhuǎn)換為一張張svg圖片并上傳至OSS對(duì)象存儲(chǔ)服務(wù)器,對(duì)于PDF文件,系統(tǒng)將直接通過(guò)pdf2svg將其轉(zhuǎn)換為svg圖片。文檔處理完成后將更新文檔狀態(tài),然后在WEB端就可以預(yù)覽。圖3-4文檔轉(zhuǎn)換流程3.2.2文檔模塊文檔模塊如圖3-5所示:圖3-5文檔模塊圖文檔模塊包含上傳、下載、搜索、查看、刪除、收藏、評(píng)論、舉報(bào)八大需求:文檔上傳:用戶(hù)在上傳文檔欄目進(jìn)行文檔上傳,并設(shè)定文檔所屬頻道及其分類(lèi)。文檔下載:用戶(hù)可以下載文檔源文件,如果文檔下載的源文件需要收取積分,則應(yīng)該扣除相應(yīng)積分。文檔搜索:用戶(hù)可以在全系統(tǒng)范圍內(nèi)進(jìn)行文檔搜索。文檔查看:用戶(hù)可以在文檔詳情頁(yè)查看文檔基本信息,如果文檔已經(jīng)轉(zhuǎn)換為可預(yù)覽的圖片,則應(yīng)該展示文檔內(nèi)容信息。文檔刪除:文檔所有者和系統(tǒng)管理員可以刪除文檔。文檔收藏:用戶(hù)可以創(chuàng)建收藏夾,在瀏覽文檔時(shí),可以將文檔收藏至指定收藏夾。文檔評(píng)論:用戶(hù)可以對(duì)文檔進(jìn)行評(píng)分和評(píng)論。文檔舉報(bào):用戶(hù)在發(fā)現(xiàn)文檔侵權(quán)或者違反相關(guān)規(guī)定時(shí),可以向文庫(kù)系統(tǒng)舉報(bào)該文檔。3.3界面設(shè)計(jì)用戶(hù)首次進(jìn)入文庫(kù)系統(tǒng)會(huì)先進(jìn)入主頁(yè)面如圖3-6,然后如果沒(méi)有賬號(hào)則需要點(diǎn)擊注冊(cè),進(jìn)入到注冊(cè)界面,用戶(hù)按要求填寫(xiě)正確信息即可完成注冊(cè)如圖3-7。然后用戶(hù)輸入用戶(hù)名和密碼登錄如圖3-8所示。接著就進(jìn)入了如圖3-9所示的會(huì)員中心,在這里用戶(hù)可以對(duì)自己的文件進(jìn)行管理。用戶(hù)點(diǎn)擊上傳文檔進(jìn)入文檔上傳頁(yè)面如圖3-10,可以選擇文檔分享。圖3-6系統(tǒng)主頁(yè)圖3-7注冊(cè)頁(yè)圖3-8登錄頁(yè)圖3-9個(gè)人中心圖3-10文檔上傳第四章數(shù)據(jù)庫(kù)設(shè)計(jì)4.1數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)是文庫(kù)系統(tǒng)的核心,系統(tǒng)通過(guò)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、處理、統(tǒng)計(jì)。數(shù)據(jù)庫(kù)的設(shè)計(jì)對(duì)整個(gè)文庫(kù)系統(tǒng)的穩(wěn)定產(chǎn)生直接影響,好的設(shè)計(jì),會(huì)使整個(gè)系統(tǒng)運(yùn)行流暢,提升穩(wěn)定性。 我設(shè)計(jì)的文庫(kù)系統(tǒng)的數(shù)據(jù)庫(kù)有用戶(hù)信息表、文檔分類(lèi)表、文檔表、收藏表等15張表。每個(gè)數(shù)據(jù)表都有字段名、數(shù)據(jù)類(lèi)型、數(shù)據(jù)長(zhǎng)度、主鍵、是否為空、自增、備注。下面我將數(shù)據(jù)表逐個(gè)介紹:(1)、用戶(hù)基礎(chǔ)表用來(lái)存儲(chǔ)用戶(hù)的基礎(chǔ)信息,表結(jié)構(gòu)如表4-1所示。表4-1用戶(hù)數(shù)據(jù)基礎(chǔ)表(t_user)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是用戶(hù)IDEmailvarchar50否NotNull否用戶(hù)郵箱Passwordvarchar32否NotNull否用戶(hù)密碼Usernamevarchar50否NotNull否用戶(hù)名Avatarvarchar50否NotNull否用戶(hù)頭像(2)、用戶(hù)詳情表主要用于記錄用戶(hù)注冊(cè)時(shí)間、積分?jǐn)?shù)、收藏夾數(shù)和狀態(tài)信息,表結(jié)構(gòu)如表4-2所示。表4-2用戶(hù)詳情表(t_user_info)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是用戶(hù)IDCoinInt11否NotNull否用戶(hù)積分DocumentInt11否NotNull否用戶(hù)上傳文檔數(shù)CollectInt11否NotNull否用戶(hù)收藏夾數(shù)TimeCreateInt11否NotNull否用戶(hù)注冊(cè)時(shí)間Statustinyint1否NotNull否用戶(hù)狀態(tài)(3)、積分日志表主要用于記錄用戶(hù)積分變更日志,表結(jié)構(gòu)如表4-3所示。表4-3積分日志表(t_coin_log)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是積分IDUidInt11否NotNull否用戶(hù)IDCoinint11否NotNull否積分LogVarchar512否NotNull否日志記錄TimeCreateInt11否NotNull否創(chuàng)建時(shí)間(4)、管理員表主要用于記錄管理員賬戶(hù)和密碼信息,表結(jié)構(gòu)如表4-4所示。表4-4管理員表(t_admin)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是管理員IDUsernameVarchar16否NotNull否管理員用戶(hù)名PasswordVarchar32否NotNull否管理員密碼Emailvarchar50否NotNull否管理員郵箱(5)、文檔分類(lèi)表主要用于記錄文字頻道及分類(lèi),表結(jié)構(gòu)如表4-5所示。表4-5文檔分類(lèi)表(t_category)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是分類(lèi)IDPidInt11否NotNull否父級(jí)IDTitleVarchar20否NotNull否分類(lèi)標(biāo)題Covervarchar255否NotNull否分類(lèi)封面CntInt11否NotNull否文檔數(shù)量SortInt11否NotNull否排序Aliasvarchar30否NotNull否別名Statustinyint1否NotNull否狀態(tài)TimeCreateint11否NotNull否創(chuàng)建時(shí)間(6)、文檔基礎(chǔ)表主要用于記錄文檔的名字、關(guān)鍵詞、描述信息,表結(jié)構(gòu)如表4-6所示。表4-6文檔基礎(chǔ)信息表(t_document)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是文檔IDTitleVarchar255否NotNull否文檔標(biāo)題FilenameVarchar255否NotNull否文檔名稱(chēng)Keywordsvarchar255否NotNull否關(guān)鍵詞DescriptionInt11否NotNull否文檔描述(7)、文檔詳情表主要記錄文檔分類(lèi)、文檔大小、頁(yè)數(shù)、類(lèi)型等信息,表結(jié)構(gòu)如表4-7所示。表4-7文檔詳情表(t_document_info)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是文檔IDUidInt11否NotNull否用戶(hù)IDChanelIdint11否NotNull否頻道IDPidInt11否NotNull否一級(jí)分類(lèi)IDCidInt11否NotNull否二級(jí)分類(lèi)IDTimeCreateInt11否NotNull否創(chuàng)建時(shí)間TimeUpdateInt11否NotNull否修改時(shí)間Dcntint11否NotNull否下載次數(shù)VcntInt11否NotNull否查看次數(shù)CcntInt11否NotNull否收藏次數(shù)PriceInt11否NotNull否下載所需積分Md5Varchar32否NotNull否文檔MD5ExtVarchar10否NotNull否文檔后綴ExtCateVarchar10否NotNull否文檔文件類(lèi)型PageInt11否NotNull否文檔頁(yè)碼數(shù)SizeInt11否NotNull否文檔大小PreviewExtVarchar11否NotNull否可預(yù)覽格式Statustinyint4否NotNull否狀態(tài)(8)、收藏夾表主要記錄收藏夾名字、收藏夾所屬人、描述等信息,表結(jié)構(gòu)如表4-8所示。表4-8收藏夾表t_collect_folder字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是收藏夾IDCoverVarchar50否NotNull否收藏夾封面TitleVarchar255否NotNull否收藏夾名稱(chēng)Descriptionvarchar512否NotNull否收藏夾描述UidInt11否NotNull否用戶(hù)IDTimeCreateint11否NotNull否創(chuàng)建時(shí)間CntIntInt否Notnull否總數(shù)(9)、收藏表主要記錄收藏夾內(nèi)收藏的文檔信息,表結(jié)構(gòu)如表4-8所示。表4-9收藏表(t_collect)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是收藏IDCidInt11否NotNull否收藏夾IDDidInt11否NotNull否文檔ID(10)、文檔評(píng)論表主要用于記錄用戶(hù)對(duì)文檔的評(píng)分和評(píng)論內(nèi)容信息,表結(jié)構(gòu)如表4-10所示。表4.10文檔評(píng)論表(t_document_comment)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是文檔評(píng)論IDDidInt11否NotNull否文檔IDUidInt11否NotNull否評(píng)論用戶(hù)IDScoreInt11否NotNull否文檔評(píng)分ContentVarchar256否NotNull否文檔評(píng)論內(nèi)容TimeCreateInt11否NotNull否評(píng)論時(shí)間(11)、文搜索關(guān)鍵詞表主要記錄用戶(hù)搜索關(guān)鍵詞信息,表結(jié)構(gòu)如表4-11所示。表4.11搜索關(guān)鍵詞表(t_search_log)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是文檔評(píng)論IDWdVarchar50否NotNull否搜索關(guān)鍵詞(12)、舉報(bào)表主要記錄用戶(hù)對(duì)文檔的舉報(bào)信息,表結(jié)構(gòu)如表4-12所示。表4-12舉報(bào)表(t_report)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是舉報(bào)IDUidint11否NotNull否用戶(hù)IDDidint11否NotNull否文檔IDReasonvarchar250否Notnull否舉報(bào)理由StatusInt1否Notnull否狀態(tài)TimeCreateInt11否Notnull否創(chuàng)建時(shí)間TimeUpdateint11否Notnull否修改時(shí)間(13)、橫幅表注意用于記錄橫幅圖片、標(biāo)題、鏈接地址,表結(jié)構(gòu)如表4-13所示。表4-13橫幅表(t_banner)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是橫幅IDPictureVarchar50否NotNull否圖片地址TitleVarchar255否NotNull否橫幅標(biāo)題Linkvarchar255否NotNull否橫幅鏈接地址SortInt11否NotNull否排序Statustinyint1否NotNull否狀態(tài)TimeCreateint11否NotNull否創(chuàng)建時(shí)間(14)、友鏈表主要記錄系統(tǒng)友情鏈接信息,表結(jié)構(gòu)如表4-14所示。表4-14友鏈表(t_friend_link)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是友鏈IDTitlevarchar100否NotNull否友鏈名稱(chēng)LinkVarchar255否NotNull否連接地址StatusInt1否Notnull否狀態(tài)SortInt11否NotNull否排序TimeCreateInt11否Notnull否創(chuàng)建時(shí)間(15)、頁(yè)面表主要記錄幫助關(guān)于我們、聯(lián)系我們等頁(yè)面的內(nèi)容,表結(jié)構(gòu)如表4-15所示。表4-15頁(yè)面表(t_pages)字段名類(lèi)型長(zhǎng)度主鍵是否為空自增備注IdInt11是NotNull是頁(yè)面IDNamevarchar100否NotNull否頁(yè)面名稱(chēng)AliasVarchar50否NotNull否別名TitleVarchar200否Notnull否標(biāo)題KeywordsVarchar11否NotNull否關(guān)鍵詞DescriptionVarchar255否NotNull否描述ContentText0否NotNull否頁(yè)面內(nèi)容SortInt11否NotNull否排序VcntInt11否NotNull否瀏覽次數(shù)TimeCreateInt11否Notnull否創(chuàng)建時(shí)間4.2數(shù)據(jù)E-R圖從人的角度出發(fā),對(duì)數(shù)據(jù)進(jìn)行分析整合,最終得到整個(gè)系統(tǒng)的系統(tǒng)數(shù)據(jù)庫(kù)的概念設(shè)計(jì),使用E-R圖來(lái)表示對(duì)實(shí)體、屬性的特征進(jìn)行描述,最終構(gòu)成了E-R模型。實(shí)體間關(guān)系屬性實(shí)體實(shí)體間關(guān)系屬性實(shí)體(1)、系統(tǒng)管理員作為一個(gè)實(shí)體,有管理員ID、用戶(hù)名、郵箱、密碼等四個(gè)屬性,如圖4-16所示。圖4-16管理員E-R圖(2)、已注冊(cè)用戶(hù)作為一個(gè)實(shí)體,他的屬性有用戶(hù)ID、昵稱(chēng)、姓名、電子郵件、收藏夾、文檔、積分?jǐn)?shù)等,如圖4-17所示。圖4-17已注冊(cè)用戶(hù)E-R圖(3)、文檔作為一個(gè)實(shí)體,有文檔ID、所屬平導(dǎo)、分類(lèi)、Md5、收藏?cái)?shù)、下載數(shù)、瀏覽數(shù)等屬性,如圖4-18所示。圖4-18文檔E-R圖橫幅有ID、圖片、連接、標(biāo)題等屬性,如圖4-19所示。圖4-19橫幅E-R圖(5)友情鏈接有ID、標(biāo)題、連接、創(chuàng)建時(shí)間等屬性,如圖4-20所示。圖4-20友情鏈接E-R圖 第五章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1用戶(hù)注冊(cè)功能實(shí)現(xiàn)用戶(hù)注冊(cè)界面如圖5-1所示:圖5-1用戶(hù)注冊(cè)界面系統(tǒng)生成隨機(jī)驗(yàn)證碼,代碼如下2、系統(tǒng)使用系統(tǒng)郵箱將剛生成的隨機(jī)驗(yàn)證碼發(fā)送至客戶(hù)郵箱,并記錄至緩存,代碼如下:3、用戶(hù)驗(yàn)證碼與注冊(cè)信息一起提交,系統(tǒng)將校驗(yàn)用戶(hù)提交的驗(yàn)證碼與緩存中的驗(yàn)證碼是否一致,代碼如下: 4、驗(yàn)證完成后,將用戶(hù)信息寫(xiě)入數(shù)據(jù)庫(kù),代碼如下:5.2用戶(hù)登錄用戶(hù)登錄界面如圖5-2所示:圖5-2登錄窗口服務(wù)器獲取到前端傳遞的賬號(hào)密碼消息,檢查賬號(hào)密碼是否匹配,代碼如下:判斷賬號(hào)是否被管理員禁用,代碼如下:驗(yàn)證完畢后,將用戶(hù)ID等信息寫(xiě)入Session。5.3文檔上傳文檔上傳界面如圖5-3所示:圖5-3文檔上傳界面服務(wù)器接受到瀏覽器上報(bào)的文件基本信息,將使用分詞算法將其分詞,代碼實(shí)現(xiàn)如下:服務(wù)器接收到文件流后,校驗(yàn)文件格式,并寫(xiě)入緩存,代碼如下:文檔寫(xiě)入數(shù)據(jù)庫(kù)后,文檔將開(kāi)始在后臺(tái)進(jìn)行轉(zhuǎn)換,代碼如下:文檔轉(zhuǎn)換完成后,將更新數(shù)據(jù)庫(kù)中文檔狀態(tài)及頁(yè)碼數(shù),前臺(tái)就可以直接預(yù)覽文檔內(nèi)容了。5.4文檔下載文檔下載如圖5-4所示:圖5-4文檔下載界面 1、用戶(hù)點(diǎn)擊文檔下載,先彈出確定按鈕,當(dāng)用戶(hù)按下確定下載后,系統(tǒng)將用戶(hù)積分是否足夠,當(dāng)積分足夠時(shí),才可以下載文檔,代碼如下:系統(tǒng)將生成一個(gè)帶有時(shí)效性的OSS文件下載地址,代碼如下:瀏覽器根據(jù)系統(tǒng)返回的url進(jìn)行相應(yīng)文件下載。5.5文檔查看文檔查看如圖5-5所示:圖5-5文檔查看界面 當(dāng)文檔轉(zhuǎn)換成為可瀏覽的圖片后將通過(guò)圖片的方式展示文檔內(nèi)容,代碼如下:5.6管理員登錄管理員登錄如圖5-6所示:圖5-5管理員登錄界面服務(wù)器收到瀏覽器發(fā)來(lái)的賬號(hào)密碼信息后,對(duì)賬號(hào)密碼進(jìn)行校驗(yàn),代碼如下: 第六章文庫(kù)系統(tǒng)測(cè)試6.1系統(tǒng)測(cè)試的目的軟件開(kāi)發(fā)過(guò)程復(fù)雜,且容易受到軟、硬件環(huán)境、開(kāi)發(fā)思路等因素的影響,會(huì)產(chǎn)生一些錯(cuò)誤。為保證系統(tǒng)在使用之前開(kāi)發(fā)人員能盡可能的發(fā)現(xiàn)錯(cuò)誤,并對(duì)不符合設(shè)計(jì)的地方進(jìn)行有必要的修改和完善。系統(tǒng)測(cè)試是軟件在使用之前對(duì)需求分析和功能設(shè)計(jì)的最后檢查,在對(duì)錯(cuò)誤異常修復(fù)后,可以有效的減少在設(shè)計(jì)和開(kāi)發(fā)過(guò)程中的失誤帶來(lái)的損失,從而提高軟件的可靠性、穩(wěn)定性。6.2系統(tǒng)測(cè)試分類(lèi) 一、用戶(hù)界面測(cè)試 與系統(tǒng)功能相比,用戶(hù)交互界面存在的問(wèn)題對(duì)功能實(shí)現(xiàn)沒(méi)影響但對(duì)用戶(hù)使用產(chǎn)生影響,也是最容易被忽視的地方,存在的問(wèn)題如表6-1所示:表6-1用戶(hù)界面存在的問(wèn)題存在問(wèn)題問(wèn)題描述錯(cuò)別字在用戶(hù)界面、提示文字中存在錯(cuò)別字界面顯示不協(xié)調(diào)在實(shí)現(xiàn)時(shí),沒(méi)能統(tǒng)一樣式定義,導(dǎo)致不同地方的樣式表出現(xiàn)不一致,導(dǎo)致顯示不協(xié)調(diào)二、需求測(cè)試按需求和功能對(duì)文庫(kù)系統(tǒng)的業(yè)務(wù)需求和功能進(jìn)行測(cè)試。三、功能測(cè)試功能測(cè)試主要是測(cè)試系統(tǒng)的各個(gè)功能模塊是否滿(mǎn)足預(yù)期。6.2文庫(kù)系統(tǒng)測(cè)試內(nèi)容 文庫(kù)系統(tǒng)在測(cè)試時(shí),進(jìn)行了以下內(nèi)容的測(cè)試:文檔上傳測(cè)試用例如6-2所示:表6-2文檔上傳測(cè)試測(cè)試要點(diǎn)選擇文檔上傳測(cè)試條件上傳成功與否,文檔信息是否寫(xiě)入數(shù)據(jù)庫(kù)中,文檔轉(zhuǎn)換成svg圖片是否成功預(yù)期結(jié)果上傳成功并把數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)中,失敗給出失敗原因測(cè)試數(shù)據(jù)選擇文件:/Users/lipeng/Downloads/Go語(yǔ)言中文文檔.pdf選擇文件:/Users/lipeng/Downloads/反思與批判.doc選擇文件:/Users/lipeng/Downloads/數(shù)據(jù)統(tǒng)計(jì).

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論