【正文】
前的軟、硬件技術(shù)能否滿足系統(tǒng)地實(shí)現(xiàn)要求進(jìn)行分析。 本系統(tǒng)采用 B/S 模式, B/S( Browser/Server,瀏覽器 /服務(wù)器)模式又稱B/S 結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過 IE 瀏覽器來實(shí)現(xiàn)的。 B/S 模式最大特點(diǎn)是:用戶可以通過 WWW 瀏覽器去訪問 Inter 上的文本、數(shù)據(jù)、圖像、動畫、視頻點(diǎn)播和聲音信息,這些信息都是由許許多多的 Web 服務(wù)器產(chǎn)生的,而每一個(gè) Web 服 務(wù)器又可以通過各種方式與數(shù)據(jù)庫服務(wù)器連接,大量的數(shù)據(jù)實(shí)際存放在數(shù)據(jù)庫服務(wù)器中。在這種結(jié)構(gòu)中,將許許多多的網(wǎng)連接到一塊,形成一個(gè)巨大的網(wǎng),即全球網(wǎng)。 系統(tǒng)前臺使用 Dreamweaver+Html 制作基本的簡單頁面 ,后臺使用目前流行的 struts 框架技術(shù)和 jsp 實(shí)現(xiàn), Struts 的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面 :Taglib 和頁面導(dǎo)航。另外,就目前國內(nèi)的 JSP 開發(fā)者而言,除了使用 JSP 自帶的常用標(biāo)第 3章 系統(tǒng)的概要設(shè)計(jì) 21 記外,很少開發(fā)自己的標(biāo)記,或許 Struts 是一個(gè)很好的起點(diǎn)。通過一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有著莫大的好處。 例外本系統(tǒng)使用 Sqlserver 數(shù)據(jù)庫, SQL Server 是由 Microsoft 開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)( DBMS), 具有 高性能、可靠性和可擴(kuò)充性的優(yōu)點(diǎn),又引入了數(shù)據(jù)庫和服務(wù)器增強(qiáng)功能和其他一些新的特性,可用于大型聯(lián)機(jī)事務(wù)處理、數(shù)據(jù)倉庫及電子商務(wù)等方面。 從經(jīng)濟(jì)上考慮,網(wǎng)上書店 投資少,回收快,而且無所謂存貨,所以特別適合小商店和個(gè)人在網(wǎng)上創(chuàng)業(yè)。而網(wǎng)上開店所需的啟動資金卻少得多。系統(tǒng)由本人開發(fā),所有權(quán)歸本人所屬,未使用任何非法軟件進(jìn)行相關(guān)開發(fā),因此開發(fā)該系統(tǒng)是可行的。它的主要用途是明確系統(tǒng)需求,是用 戶人員之間進(jìn)行討論的基礎(chǔ),并作為系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)以及測試的依據(jù)。 本系統(tǒng)描述了通過包括因特網(wǎng)在內(nèi)的計(jì)算機(jī)網(wǎng)絡(luò)來購買、銷售和交換圖書的過程。網(wǎng)站可以為用戶提供商品的詳細(xì)信息,用戶可以在線購買商品,確定自己的訂單。 系統(tǒng)的功能主要有注冊、登陸、書籍瀏覽、書籍查詢、下訂單、購購書,發(fā)表和查看評論等。 ( 2)購物車管理:當(dāng)客戶選擇購買某圖書產(chǎn)品時(shí),應(yīng)該能夠?qū)?yīng)圖書信息,如:價(jià)格、數(shù)量記錄到對應(yīng)的購物車中,并允許客戶返回書目查詢頁面,選擇其他商品,并添加到購物車中,當(dāng)對應(yīng)的購物訂單生成后,應(yīng)該能夠生成訂單的購物車中的信息。 ( 4)會員注冊:為了能夠?qū)崿F(xiàn)圖書商品的購買,需要管理客戶相關(guān)的聯(lián)系方式、送貨地點(diǎn)等相關(guān)的信息。 系統(tǒng)框架圖 網(wǎng)上書店 系統(tǒng)的開發(fā)是基于 B/S 模式的,具有良好的人機(jī)交互界面,整個(gè)系統(tǒng)對數(shù)據(jù)庫信息進(jìn)行高效的管理,系統(tǒng)的每一部分都實(shí)現(xiàn)了其相關(guān)的 功能,在整個(gè)系統(tǒng)中各角色分工明顯,各司其職。具體的 UML 活動圖如圖 32 所示。設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)時(shí)應(yīng)先充分了解各個(gè)方面的需求,根據(jù)需求來決定數(shù)據(jù)庫結(jié)構(gòu)。本系統(tǒng)用到的數(shù)據(jù)庫包含以下的 7 個(gè)表: 圖書基本信息表 、 圖書分類基本信息表 、 客戶基本信息表 、 訂單信息表 、 訂單條目詳細(xì)信息表 、 評論信息表 、 時(shí)間信息表( 下劃線部分為主鍵 )。 以上 七個(gè)表 之間互相聯(lián)系,互相制約,共同為本系統(tǒng)提供正確的數(shù)據(jù) 。 1. 圖書基本信息表 圖書基本信息表( book)是用來保存網(wǎng)上書店每一種圖書基本信息的數(shù)據(jù)表,是維護(hù)管理圖書數(shù)據(jù)的依據(jù),在表 41 中列出了該表所包含的字段描述信息。 2. 圖書分類基本信息表 圖書分類基本信息表( bookcat)記錄了與網(wǎng)上書店圖書分類相關(guān)的信息。 表 32 圖書分類基本信息表 列名 描述 類型 長度 允許為空 主鍵 Id 圖書分類編號 Int 4 No Null Yes catname 圖書分類名稱 vachar 50 No Null 為了便于客戶找到所需的圖書信息,可以對整個(gè)書目進(jìn)行分類管理。 燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 26 33 客戶基本信息表 列名 描述 類型 長度 允許為空 主鍵 username 用戶名 vachar 50 No Null Yes password 密碼 vachar 50 No Null name 客戶姓名 vachar 50 No Null tel 客戶電話 vachar 50 No Null address 客戶地址 vachar 50 No Null 客 戶 郵箱 vachar 50 No Null 4. 訂單信息表 訂單信息表( orders)的結(jié)構(gòu)如表 34 所示 : 表 34 訂單信息表 列名 描述 類型 長度 允許為空 主鍵 Id 訂單編號 Int 4 No Null Yes username 訂單對應(yīng)用戶名 vachar 50 No Null time 產(chǎn)生訂單的時(shí)間 datetime 8 No Null delivery 送貨方式 vachar 50 No Null payment 付款方式 vachar 50 No Null 5. 訂單條目詳細(xì)信息表 訂單條目詳細(xì)信息表( orderdetail)的結(jié)構(gòu)如表 35 所示: 表 35 訂單條目信息表 列名 描述 類型 長度 允許為空 主鍵 orderid 訂單編號 Int 4 No Null Yes bookid 書籍編號 Int 4 No Null count 訂購數(shù)量 Int 4 No Null price 該條目對應(yīng)價(jià)格 Int 4 No Null 6. 評論信息表 評論信息表( bookments)的結(jié)構(gòu)如表 36 所示: 表 36 評論信息表 列名 描述 類型 長度 允許為空 主鍵 第 3章 系統(tǒng)的概要設(shè)計(jì) 27 Id 訂單編號 Int 4 No Null Yes bookid 圖書分類編號 Int 4 No Null ment 圖書評論 varchar 200 No Null time 發(fā)表評論的時(shí)間 datetime 8 No Null 7. 時(shí)間信息表 時(shí)間信息表( timer)的結(jié)構(gòu)如 表 37 所示: 表 37 時(shí)間信息表 列名 描述 類型 長度 允許為空 主鍵 Id 訂單編號 Int 4 No Null Yes time 產(chǎn)生訂單的時(shí)間 datetime 8 No Null 系統(tǒng)的 ER 模型圖 依據(jù)以上的分析,本系統(tǒng)的 ER 圖 如圖 33 所示 : 名 稱圖 書圖 書 價(jià)格銷 售 價(jià)格作 者目 錄 介 紹編 號下 訂 單送 貨 方 式時(shí) 間用 戶 名付 款 方 式客 戶密 碼E m a i l地 址地 址地 址姓 名電 話nm 圖 33 系統(tǒng)的 ER 圖 數(shù)據(jù)庫關(guān)聯(lián) 在確定了各個(gè)表主鍵字段的基礎(chǔ)上,依據(jù)表與表之間相關(guān)字段之間的關(guān) 燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 28 系 建立了各表之間的關(guān)系,對應(yīng)的關(guān)系圖如下所 示: b o o k c a ti d i n t ( 4 ) p k c a t n a m e v a r c h a r ( 5 0 )s t o r e u s e ru s e r n a m e v a r c h a r ( 5 0 ) p k p a s s w o r d v a r c h a r ( 5 0 )n a m e v a r c h a r ( 5 0 )t e l v a r c h a r ( 5 0 )a d d r e s s v a r c h a r ( 5 0 )e m a i l v a r c h a r ( 5 0 )o r d e r si d i n t ( 4 ) p k U s e r n a m e v a r c h a r ( 5 0 ) f k t i m e d a t e t i m e ( 8 )d e l i v e r y v a r c h a r ( 5 0 )p a y m e n t v a r c h a r ( 5 0 )o r d e r d e t a i lo r d e r e d i n t ( 4 ) p k , f k 1 b o o k i d i n t ( 4 ) p k , f k 2 c o u n t i n t ( 4 )p r i c e i n t ( 4 )b o o ki d i n t ( 4 ) p k c a t i d i n t ( 4 ) f k n a m e v a r c h a r ( 5 0 )p r i c e i n t ( 4 )s a l e p r i c e i n t ( 4 )d e s c r i p t v a r c h a r ( 1 0 0 )a u t h p r v a r c h a r ( 5 0 )c o n t e n t s v a r c h a r ( 1 0 0 )i m a g e v a r c h a r ( 5 0 )f k o r d e r d e t a i l o r d e r sf k o r d e r s r e f s t o r e u s e rf k b o o k r e f b o o k c a t 圖 34 數(shù)據(jù)庫關(guān)系圖 本章小結(jié) 本章 首先 對本系統(tǒng)的可行性從 技術(shù),經(jīng)濟(jì),法律 上進(jìn)行了分 析,使得系統(tǒng)的實(shí)現(xiàn)的可行 性得到了驗(yàn)證。對各個(gè)功能模塊進(jìn)行了詳細(xì)的分析,得到了需要解決的問題集,弄清了整個(gè)系統(tǒng)需要干什么,需要做什么,解決什么樣的問題,為系統(tǒng)的開發(fā)設(shè)計(jì)形成了設(shè)計(jì)方案,為整個(gè)系統(tǒng)的開發(fā)實(shí)現(xiàn)起到了關(guān)鍵的作用。在對各功能模塊的設(shè)計(jì)第 3章 系統(tǒng)的概要設(shè)計(jì) 29 中,重點(diǎn)介紹了實(shí)現(xiàn)該功能模塊所需設(shè)計(jì)的數(shù)據(jù)庫表單。在此設(shè)計(jì)中,還簡單設(shè)計(jì)了系統(tǒng)的 ER 圖,并根據(jù)數(shù)據(jù)庫各表單的關(guān)系設(shè)計(jì)了系統(tǒng)的關(guān)聯(lián)圖。對系統(tǒng)的進(jìn)一步實(shí)現(xiàn),起到了重要的作用。 前臺顯示 本系統(tǒng)提供了兩種圖書查詢方式,一種是按照圖書種類查詢,例如:計(jì)算機(jī)類,社科類,文學(xué)類,科技類等,另一種是可根據(jù)用戶輸 入的內(nèi)容對書名或作者進(jìn)行模糊查詢。其中顯示的圖書信息包括:書名,定價(jià),會員價(jià),作者,詳細(xì)介紹。主頁顯示如 圖 41 所示 : 圖 41 圖書查詢 當(dāng)想查詢圖書的詳細(xì)信息時(shí),點(diǎn)擊首頁圖書列表的詳細(xì)按鈕,就會跳轉(zhuǎn)到想要查詢的圖書的詳細(xì)情況頁面,其中圖書的詳細(xì)信息包括:圖書的圖片,燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 31 圖書的作者,定價(jià),會員價(jià),庫存量,目錄信息等,顯示情況如 圖 42 所示 : 圖 42 圖書詳情 后臺處理 實(shí)現(xiàn)此模塊功 能的后臺處理過程如下: 后臺的 Controller 組件的核心控制組件 ActionServlet 根據(jù)客戶端的請求將之分發(fā)到相應(yīng)的 Action Bean,再根據(jù)處理的結(jié)果將不同的顯示請求重定向到響應(yīng)的 jsp 頁面進(jìn)行顯示,實(shí)際上 ActionServlet 完全在幕后工作,將其他組件綁定在一起。 當(dāng)查詢圖書的詳細(xì)信息時(shí),例如用戶查詢的是社科類文章《窗邊的小豆第 4 章 系統(tǒng)的詳細(xì)設(shè)計(jì) 32 豆 》, 點(diǎn) 擊 按 鈕 , 可 以 看 到 地 址 欄 顯 示 的 地 址 是 : 中代碼為: td vAlign=middle width=42 a href=?bookId=%=()%img src =images /view. gif border=0 width=25 height=25/a/td,可見,點(diǎn)擊圖片時(shí),將攜帶參數(shù)圖書編號 bookId,然后后臺的 ActionServlet 查詢 struts 配置文件 文件中 actionmappings元素,根據(jù) ,將請求分發(fā)給 這個(gè) Action Bean 進(jìn)行處理,在這個(gè)Action Bean 中根據(jù)傳過來的參數(shù) bookId 查詢數(shù)據(jù)庫,將 滿足條件的圖書詳細(xì)情況從數(shù)據(jù)庫中調(diào)出保存在 Book 類中,再將其保存在 session 中,以便后續(xù)引用。 購物 車 管理模塊 當(dāng)客戶選擇購買某圖書產(chǎn)品時(shí),應(yīng)該能夠?qū)?yīng)圖書信息,如:價(jià)格、數(shù)量記錄到對應(yīng)的購物車中,并允許客戶返回書目查詢頁面,選擇其他商品,并添加 到購物車中,當(dāng)對應(yīng)的購物訂單生成后,應(yīng)該能夠生成訂單的購物車中的信息。不僅如此,用戶還可以選擇繼續(xù)購書,清空訂單,更新訂單,結(jié)賬付款等服務(wù)。若為空或用戶本次購買的圖書沒有重復(fù)買過,則根據(jù)傳過來的圖書編號 bookId從數(shù)據(jù)庫表 book中將圖書的基本信息取出,用 ShopCart 類的對象保存起來,并將這本書存入已經(jīng)購買的圖書列表 ShopCartList 中,并存入 session