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