劉海蓉,朱永昌,胡善岳
(1.黃岡職業(yè)技術(shù)學(xué)院,湖北黃岡438002;2.甘肅省金昌市公安局龍首分局武威路派出所,甘肅金昌737100;
在線圖書銷售系統(tǒng)是以互聯(lián)網(wǎng)技術(shù)為依托,將現(xiàn)實(shí)中的圖書銷售活動(dòng)網(wǎng)絡(luò)化的電子商務(wù)應(yīng)用典型實(shí)例。本文運(yùn)用最新的Web開發(fā)技術(shù)ASP.NET,歷經(jīng)完整軟件開發(fā)周期,實(shí)現(xiàn)了在線圖書銷售網(wǎng)站的構(gòu)建設(shè)計(jì)。
1.1 系統(tǒng)設(shè)計(jì)目標(biāo)
本系統(tǒng)是針對(duì)電子商務(wù)應(yīng)用網(wǎng)站設(shè)計(jì)的,主要實(shí)現(xiàn)如下目標(biāo):
(1)系統(tǒng)采用B/S模式開發(fā),界面美觀友好,信息查詢方便,快捷,準(zhǔn)確,數(shù)據(jù)存貯安全可靠。
(2)本系統(tǒng)為在線銷售系統(tǒng),較完備的訂單查詢和處理功能是其核心與本質(zhì)。
(3)具備一定的統(tǒng)計(jì)分析功能,方便決策者分析處理。
(4)實(shí)現(xiàn)各種查詢,如條件查詢,模糊查詢等。
(5)管理員可以隨時(shí)修改自己的口令,內(nèi)置超級(jí)管理員實(shí)現(xiàn)最高權(quán)限。
(6)對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)排錯(cuò)后給出提示,盡可能排除人為錯(cuò)誤。
(7)系統(tǒng)最大限度地實(shí)現(xiàn)易安裝性,易維護(hù)性和易操作性。
(8)系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。
1.2 系統(tǒng)設(shè)計(jì)思想
1.2.1 基于三層架構(gòu)模型
本系統(tǒng)將把部分業(yè)務(wù)層代碼放到自定義控件內(nèi),ASPX頁面主要負(fù)責(zé)參數(shù)的傳遞,以及將各種數(shù)據(jù)顯示出來;而自定義控件內(nèi)的邏輯層封裝了購物車、產(chǎn)品展示等功能;數(shù)據(jù)層中建立了一個(gè)數(shù)據(jù)連接類,封裝了對(duì)數(shù)據(jù)庫的基本操作方法。它們之間的邏輯關(guān)系如下圖1-1所示:
1.2.2 系統(tǒng)安全性保障
(1)數(shù)據(jù)庫服務(wù)器和Web服務(wù)器的設(shè)置:出于電子商務(wù)安全性的考慮,可以將數(shù)據(jù)庫服務(wù)器和Web服務(wù)器分別配置在不同的服務(wù)器,設(shè)置防火墻,限制外網(wǎng)對(duì)數(shù)據(jù)庫服務(wù)器內(nèi)部網(wǎng)絡(luò)的訪問,即只能對(duì)Web服務(wù)器進(jìn)行訪問,從而提高系統(tǒng)的安全性。
(2)數(shù)據(jù)庫內(nèi)容安全性考慮:因考慮到即使設(shè)置了防火墻,仍然有可能被人利用系統(tǒng)的漏洞等黑客攻擊方法獲取數(shù)據(jù)庫中的數(shù)據(jù),所以為了充分保護(hù)個(gè)人隱私尤其是密碼保護(hù)意識(shí)薄弱的用戶(喜歡長(zhǎng)期使用唯一字串的密碼),在用戶密碼部分,采用MD5或SHA1這種不可逆的加密算法進(jìn)行加密,從而加強(qiáng)保護(hù)。
(3)對(duì)非法輸入字串的過濾功能:當(dāng)用字符串來組織SQL,如果查詢語句中含有單引號(hào),而SQL語句又以單引號(hào)為分界符,從而容易截?cái)郤QL字符串,引發(fā)錯(cuò)誤。因此要將單引號(hào)過濾掉,或者替換為兩個(gè)單引號(hào)(SQL語句中用兩個(gè)單引號(hào)表示一個(gè)單引號(hào)),這里只需使用Replace函數(shù)即可達(dá)到目的。
1.2.3 代碼復(fù)用
本系統(tǒng)中使用了較好的代碼復(fù)用機(jī)制,避免重復(fù)開發(fā)和保留投資,復(fù)用本系統(tǒng)中已經(jīng)使用的代碼和以前項(xiàng)目經(jīng)驗(yàn)積累的代碼,如數(shù)據(jù)庫訪問類、非法輸入檢測(cè)類等。這種思想最突出的表現(xiàn)在制作自定義用戶控件(ascx),并在重復(fù)用到的aspx頁面中只需拖放組裝即可,大大提高了開發(fā)的速度和效率。
1.2.4 輸出緩存技術(shù)
此技術(shù)是針對(duì)電子商務(wù)的特點(diǎn)對(duì)訪問量較大業(yè)務(wù)邏輯較為復(fù)雜的網(wǎng)站的一種優(yōu)化策略。根據(jù)緩存的原理,服務(wù)器的響應(yīng)速度要大于純HTML頁面的響應(yīng)速度。因?yàn)檩敵鼍彺媸菍SPX頁面執(zhí)行之后生成的HTML頁面緩存在內(nèi)存中,如果有相同請(qǐng)求就可直接發(fā)送內(nèi)存中的頁面,而HTML頁面存儲(chǔ)在硬盤上效率顯然不高。
1.3 功能模塊設(shè)計(jì)
1.4 系統(tǒng)編碼設(shè)計(jì)
代碼是代表系統(tǒng)中客觀存在的事物名稱、屬性或狀態(tài)的符號(hào)。鑒于現(xiàn)代管理活動(dòng)中產(chǎn)生的數(shù)據(jù)量大,信息種類繁多的特點(diǎn),為了滿足各種管理職能和各個(gè)管理層次對(duì)信息的需求,必須強(qiáng)調(diào)對(duì)分類的整理,才能更有效地利用信息。代碼設(shè)計(jì)就是信息分類的具體表現(xiàn),將系統(tǒng)中具有某些共同屬性或特征的信息歸并到一起,用一些便于計(jì)算機(jī)或人來識(shí)別和處理的符號(hào)來表示各種信息。
為了編程且方便記憶,本系統(tǒng)均采用英文縮寫,作為該項(xiàng)的代碼。例如:字段表中“PInfo”表示商品信息表,又如每個(gè)頁面的命名采用模塊名加功能名的方式,管理員登陸頁面是AdminLogin.aspx,Admin.aspx。
1.5 系統(tǒng)運(yùn)行架構(gòu)和擴(kuò)展
根據(jù)系統(tǒng)的功能,可將Web應(yīng)用程序分為管理界面和客戶界面。根據(jù)應(yīng)用環(huán)境的不同,可以分為以下三種:
(1) 小型應(yīng)用:可以采用Web服務(wù)器與數(shù)據(jù)庫服務(wù)器共用一臺(tái)計(jì)算機(jī)的方案,數(shù)據(jù)庫可以采用Access或SQL Server。
(2) 中型應(yīng)用:可以采用Web服務(wù)器與數(shù)據(jù)庫分用兩臺(tái)計(jì)算機(jī)的方案,數(shù)據(jù)庫可采用SQL Server或Oracle。
(3) 大型應(yīng)用:可以采用多臺(tái)Web服務(wù)器集群的方案,數(shù)據(jù)庫采用SQL Server或Oracle。
對(duì)于本例可采用中型應(yīng)用,系統(tǒng)運(yùn)行架構(gòu)解決方案如圖1-4所示。
2.1 數(shù)據(jù)庫需求分析
2.1.1 數(shù)據(jù)庫結(jié)構(gòu)功能需求
根據(jù)前述系統(tǒng)總體設(shè)計(jì)要求,總結(jié)出如下數(shù)據(jù)庫結(jié)構(gòu)功能需求:
(1)用戶分為匿名用戶,會(huì)員用戶和管理員。
(2)注冊(cè)用戶登錄后可以維護(hù)自己的個(gè)人信息,并且在向網(wǎng)站發(fā)出訂單時(shí)會(huì)自動(dòng)填寫自己的聯(lián)系信息。
(3)圖書按照內(nèi)容類別、出版社來分類。
(4)一個(gè)用戶可以購買多本各種圖書。
(5)一個(gè)用戶對(duì)應(yīng)多張訂單。
(6)訂單有多種匯款方式。
(7)購物幫助功能。
(8)要分別統(tǒng)計(jì)銷售狀況,包括哪類圖書,哪本圖書,以及哪個(gè)價(jià)格范圍熱銷。
(9)管理員可以查看登錄記錄。
2.1.2 數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
經(jīng)過上述系統(tǒng)功能分析和需求總結(jié),考慮到將來功能上的擴(kuò)展,設(shè)計(jì)如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)。
(1)管理員信息,包括的數(shù)據(jù)項(xiàng):帳號(hào),密碼。
(2)注冊(cè)用戶(會(huì)員),包括的數(shù)據(jù)項(xiàng):用戶ID,用戶名,密碼等。
(3)圖書,包括的數(shù)據(jù)項(xiàng):圖書編號(hào),圖書名稱,內(nèi)容簡(jiǎn)介等。
(4)圖書類別,包括的數(shù)據(jù)項(xiàng):類別編號(hào),類別名。
(5)出版社, 包括的數(shù)據(jù)項(xiàng):出版社ID,出版社名。
(6)訂單列表,包括的數(shù)據(jù)項(xiàng):訂單列表編號(hào),用戶編號(hào),下單時(shí)間,聯(lián)系方式等。
(7)購物幫助,包括數(shù)據(jù)項(xiàng):?jiǎn)栴}ID,問題標(biāo)題,問題答案和單擊次。
(8)付款方式,包括的數(shù)據(jù)項(xiàng):付款方式編號(hào),付款方式。
(9)管理員登錄記錄,包括的數(shù)據(jù)項(xiàng):登錄記錄ID,登錄所用用戶名,登錄時(shí)間,成功標(biāo)識(shí),登錄IP。
(10)圖書熱銷類別,包括的數(shù)據(jù)項(xiàng):編號(hào),類別編號(hào),數(shù)量,時(shí)間(以月為單位)。
(11)圖書價(jià)格范圍熱銷,包括的數(shù)據(jù)項(xiàng):編號(hào),價(jià)格范圍(0:0~50,1:51~100,2:101~200,3:201~300,4:301~400,5:400以上)。
2.2 數(shù)據(jù)庫概念設(shè)計(jì)
本系統(tǒng)設(shè)計(jì)規(guī)劃出的實(shí)體有:管理員信息實(shí)體,注冊(cè)用戶(會(huì)員)信息實(shí)體,圖書實(shí)體,圖書類別實(shí)體,訂單列表實(shí)體和常見問題實(shí)體等。
實(shí)體之間的E-R關(guān)系圖如圖2-1所示:
(1)管理員信息實(shí)體E-R圖如圖2-2所示:
(2)注冊(cè)會(huì)員信息實(shí)體E-R圖如圖2-3所示:
(3)圖書實(shí)體E-R圖如圖2-4所示:
(4)圖書類別E-R實(shí)體E-R圖如圖2-5所示:
(5)訂單詳細(xì)信息實(shí)體E-R圖如圖2-6所示:
(6)常見問題實(shí)體E-R圖如圖2-7所示:
(7)付款方式實(shí)體E-R圖如圖2-8所示:
(8)產(chǎn)品熱銷排行榜實(shí)體E-R關(guān)系圖如圖 2-9所示:
注意: 出版社熱銷和價(jià)格范圍熱銷排行榜實(shí)體與此類似,這里不再重復(fù)繪制示意圖。
2.3 數(shù)據(jù)庫邏輯設(shè)計(jì)
在線圖書銷售系統(tǒng)數(shù)據(jù)庫中各個(gè)表的設(shè)計(jì)結(jié)果如下面四個(gè)表所示。每個(gè)表格表示在數(shù)據(jù)庫中的一個(gè)表。注意:ASP.NET2.0的成員資格和角色管理所需要的表沒有列出。
表 2-1 管理員登錄信息表(LogRecord)
表 2-2 用戶信息表
表 2-3 圖書信息表(BookInfo)
表 2-4 訂單表(OrderList)
2.4 附加并關(guān)聯(lián)ASP.NET成員資格數(shù)據(jù)庫
本項(xiàng)目實(shí)例在將使用ASP.NET提供程序模型即MemberShip成員資格管理和RoleManger角色管理,用ASP.NET自帶的身份認(rèn)證系統(tǒng)實(shí)現(xiàn)用戶管理,并作相應(yīng)自定義擴(kuò)展以滿足實(shí)際需要。具體方法如下:
(1)將成員資格數(shù)據(jù)庫建立在SQL Server 2000上,做法為:?jiǎn)?dòng)“Visual Studio命令提示”進(jìn)入命令行狀態(tài)之后輸入:Aspnet_regsql -E -d[數(shù)據(jù)庫名]-A all或者在地址欄中輸入:(x代表操作系統(tǒng)根目錄)
X:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_regsql.exe
啟動(dòng)ASP.NET SQL Server 安裝向?qū)О凑請(qǐng)D形化界面提示導(dǎo)入相關(guān)數(shù)據(jù)庫。最終被建立到項(xiàng)目數(shù)據(jù)庫中的ASP.NET2.0數(shù)據(jù)庫包含11張表格,它將提供ASP.NET 2.0的許多特性與服務(wù)。
(2)在Web.config中設(shè)置MemberShipProvider和RoleProvider節(jié)
成員資格管理針對(duì)Web應(yīng)用,應(yīng)將整個(gè)方案的認(rèn)證模式改為“Forms”(窗體模式),并默認(rèn)為“Windows”(本地系統(tǒng)模式),在此基礎(chǔ)上還要告訴編譯器已啟用提供程序模型,配置Web.config節(jié)點(diǎn)信息如下:
<--示例代碼-->
(3)建立成員資格數(shù)據(jù)表與系統(tǒng)自身用戶信息表的關(guān)聯(lián)
擴(kuò)展MemberShip加入自定義數(shù)據(jù)的方法一直很有爭(zhēng)議,本實(shí)例采用在創(chuàng)建的用戶詳細(xì)信息表MemberInfo中添加一個(gè)uniqueidentifier類型的字段的方法,存儲(chǔ)asp_Users表中的UserID值,設(shè)置外鍵關(guān)聯(lián)。
在明確系統(tǒng)設(shè)計(jì)目標(biāo)的基礎(chǔ)上,提出整個(gè)系統(tǒng)設(shè)計(jì)的思想——三層開發(fā)模式(表示,業(yè)務(wù)和數(shù)據(jù)層),以及具體開發(fā)過程中的具體指導(dǎo)思想,如代碼復(fù)用,輸出緩存技術(shù)和編碼設(shè)計(jì),進(jìn)一步優(yōu)化系統(tǒng)設(shè)計(jì),便于后期維護(hù)和擴(kuò)展,并規(guī)劃設(shè)計(jì)了系統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu)。良好的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和編程結(jié)構(gòu)一樣都能大幅提高系統(tǒng)的效率,因此設(shè)計(jì)上要多加規(guī)范和優(yōu)化。另外要注意的是,使用ASP.NET2.0的新增特性,如成員資格管理,還要在建好的項(xiàng)目數(shù)據(jù)庫上附加ASP.NET內(nèi)置數(shù)據(jù)庫。
參考文獻(xiàn):
[1]劉海蓉.ASP.NET開發(fā)網(wǎng)上圖書銷售系統(tǒng)[J].長(zhǎng)春師范學(xué)院學(xué)報(bào),2009,(12).
[2]王紅霞.網(wǎng)上書店應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2007.
[3]范淳.對(duì)電子商務(wù)中網(wǎng)上購書系統(tǒng)的研究與開發(fā)[D].成都:西南交通大學(xué),2001.
[4]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006.
張家口職業(yè)技術(shù)學(xué)院學(xué)報(bào)2010年1期