網(wǎng)上購物數(shù)據(jù)庫設計_第1頁
網(wǎng)上購物數(shù)據(jù)庫設計_第2頁
網(wǎng)上購物數(shù)據(jù)庫設計_第3頁
網(wǎng)上購物數(shù)據(jù)庫設計_第4頁
網(wǎng)上購物數(shù)據(jù)庫設計_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、概述1.1需求背景伴著電子時代的迅猛發(fā)展和人民物質生活的水平的提高,越來越多的電子購物浪潮也洶涌而來。我們容身在這個信息化的大時代,網(wǎng)購也就成了許多人生活中必不可少的一部分,足不出戶的便捷式購物與傳統(tǒng)的購物方式大相徑庭,人們在享受到方便、實惠的同時也不必擔憂安全的問題,既方便了自身也推動著國家經(jīng)濟的發(fā)展。電子商務網(wǎng)絡購物平臺,無疑是這個時代的進步。1.2編寫目的數(shù)據(jù)庫設計說明書是數(shù)據(jù)庫設計的必要部分,對設計中的數(shù)據(jù)庫的所有標識、邏輯結構和物理結構作出具體的設計規(guī)定。本數(shù)據(jù)庫的設計說明書編寫的目的是對網(wǎng)上購物系統(tǒng)設計的說明,明確系統(tǒng)中的各項功能與非功能的需求,從而做出系統(tǒng)的數(shù)據(jù)流圖以及實體聯(lián)

2、系圖。作為系統(tǒng)的基準文檔,為以后的開發(fā)和維護提供依據(jù)。1.3軟件定義Myeclipse 10.0:一個非常優(yōu)秀的用于開發(fā)Java、J2EE的Eclipse插件集合,Myeclipse功能非常強大,支持也十分廣泛,尤其對各種開源產(chǎn)品的支持也不錯。Apache Tomcat 6.0:是一個開放源代碼、運行servlet和JSP Web應用軟件容器。Microsoft SQL Server 2005:Structured Query Language1.4開發(fā)環(huán)境本電子商務網(wǎng)絡購物平臺的開發(fā)環(huán)境是Windows 7、Myeclipse10.0、Apache Tomcat6.0,數(shù)據(jù)庫環(huán)境是Micro

3、soft SQL Server 2005。二、需求分析2.1問題陳述設計網(wǎng)絡購物系統(tǒng)的數(shù)據(jù)庫。2.1需完成的功能客戶功能:(1) 游客可以查看商品信息,瀏覽網(wǎng)站信息,經(jīng)過注冊可以成為注冊客戶。(2) 注冊客戶:注冊、客戶信息查看和修改??蛻舻卿?、確認客戶信息,顯示客戶信息。商品信息瀏覽、購物車管理、商品查找、訂單查詢以及商品評論。結賬、確認訂單、訂單狀態(tài)查詢、歷史訂單查詢。商家功能:商品的增刪改。訂單處理、訂單配送??蛻糇院?,登錄到電子商務網(wǎng)站,進入購物流程??蛻粼跒g覽所有商品信息后,可以查看每個商品的詳細信息,選擇購買或加入購物車,購物車內可以隨意增刪商品,修改商品數(shù)量,并同時統(tǒng)計購物車內

4、商品總額。客戶確認購物車內的商品,選中購買,即可生成訂單??梢圆榭从唵螤顟B(tài),“0表示”商品未發(fā)出,“1”表示商品已發(fā)出??蛻舴譃槠胀蛻艉蚔IP客戶,依據(jù)購買商品的金額和數(shù)量,自動升級。不同的VIP等級享有不同的折扣。2.1數(shù)據(jù)流圖網(wǎng)絡購物系統(tǒng)總數(shù)據(jù)流圖如下圖1:網(wǎng)絡購物系統(tǒng)總數(shù)據(jù)流圖2.1數(shù)據(jù)字典客戶表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注UserID客戶IDBigIntNot null主鍵UserName客戶名Varchar(30)Not nullRealName客戶真實姓名Varchar(30)Not nullUserPassword客戶密碼Varchar(30)Not nullEm

5、ail客戶郵箱Varchar(30)Not nullPhone聯(lián)系電話Varchar(30)Not nullID身份證號Varchar(30)Not nullQuestion密碼問題Varchar(30)NullResult答案Varchar(30)NullRegTime注冊時間DatetimeNot nullGradeID會員等級BigIntNot nullAddressID地址IntNot null表1:客戶表字段信息商品表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注GoodsID商品號BigIntNot null主鍵GName商品名稱Varchar(30)Not nullGPrice商品價

6、格SmallmoneyNot nullGTypeID商品類別BigIntNot nullGIntro商品描述Varchar(200)NullGImage商品圖片路徑Varchar(100)NullGCount商品計數(shù)IntNot nullGSail商品銷量BigIntNot nullGWeight商品重量BigIntNullGDateTime上架日期DatetimeNot nullGSize商品規(guī)格Varchar(100)Not null表2:商品表字段信息商品類別表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注TypeID商品類別號BigIntNot null主鍵TypeName類別描述Varc

7、har(50)Not null表3:商品類別表字段信息商家表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注ProducerID商家號BigIntNot null主鍵ProName商家名Varchar(30)Not nullProAddress商家地址Varchar(50)Not nullProPhone商家電話Varchar(30)Not null表4:商家表字段信息訂單表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注SubID訂單號Varchar(30)Not null主鍵UserID客戶號BigIntNot nullGoodsID商品號BigIntNot nullRAddress送貨地址Varch

8、ar(50)Not nullSpDate訂購日期DatetimeNot nullSpCount訂購數(shù)量IntNot nullGPrice單價SmallmoneyNot nullReceiptID發(fā)票號BigIntNot nullSpPrice訂單金額MoneyNot nullSendDate發(fā)貨時間DatetimeNot nullPayment付款方式Varchar(20)Not nullSendType運送方式Varchar(20)Not nullSendPrice郵費SmallmoneyNot nullState訂單狀態(tài)IntNot null表5:訂單表字段信息購物車表數(shù)據(jù)字典:字段中文描

9、述數(shù)據(jù)類型是否為空備注CarID購物車IDBigIntNot null主鍵UserID客戶IDVarchar(10)Not nullGoodsID商品IDVarchar(20)Not nullOrderTime訂購時間DatetimeNot nullOrderCount訂購數(shù)量IntNot nullGoodsPrice單價SmallmoneyNot nullUserCheck用戶確認IntNot nullOrderPrice購物總額MoneyNot null表6:購物車表字段信息會員等級表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注GradeID會員等級IDBigIntNot null主鍵Gra

10、deType等級分類IntNot null表7:會員等級表字段信息評論表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注CommentID評論IDBigIntNot null主鍵Content1內容Varchar(200)Not nullTitle標題Varchar(20)Not nullUserID客戶IDBigIntNot nullProducerID商家IDBigIntNot nullCommentTime評論時間DatetimeNot null表8:評論表字段信息供應表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注SupplyID供應IDBigIntNot null主鍵RealStock實際存貨

11、IntNot nullMinStock最低存貨IntNot nullGoodsID商品IDBigIntNot nullProducerID商家IDBigIntNot null表9:供應表字段信息發(fā)票表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注ReceiptID發(fā)票IDBigIntNot null主鍵SubID訂單號BigIntNot null表10:發(fā)票表字段信息地址表數(shù)據(jù)字典:字段中文描述數(shù)據(jù)類型是否為空備注AddressID地址IDIntNot null主鍵Address地址Varchar(50)Not nullUserID客戶IDBigIntNot null表11:發(fā)票表字段信息三、數(shù)據(jù)

12、庫概念結構設計3.1 E-R模型圖的設計(1)尋找實體集客戶VIP會員商品商家商品類別地址(2)尋找實體間聯(lián)系客戶與商品之間多對多聯(lián)系:訂單,評論1> 客戶與VIP會員之間多對一聯(lián)系:屬于2> 會員等級與訂單細節(jié)一對多:參照13> 訂單細節(jié)與商品多對一:參照24> 訂單細節(jié)預訂單多對一:組成客戶與商品之間一對多聯(lián)系:購物車1> 客戶與購物車一對一:擁有2> 購物車與商品一對多:存放3> 購物車與訂單細節(jié)一對多:結算商家與商品之間多對多聯(lián)系:供應商品與商品類別之間多對一聯(lián)系:分類客戶與地址之間一對多聯(lián)系:所在(3)確定實體的屬性客戶:客戶ID 客戶名 客

13、戶真實姓名 客戶密碼 客戶郵箱 聯(lián)系電話身份證號 密碼問題 答案 注冊時間 會員等級IDVIP會員:會員等級ID 等級分類商品:商品號 商品名稱 商品價格 商品類別 商品描述 商品圖片路徑 商品計數(shù) 商品銷量 商品重量 上架日期 商品規(guī)格商家:商家號 商家名 商家地址 商家電話地址:地址號 地址名稱商品類別:商品類別號 類別描述(3)確定聯(lián)系的屬性訂單:訂單號 客戶號 商品號 送貨地址 訂購日期 訂購數(shù)量 單價發(fā)票號 訂單金額 發(fā)貨時間 付款方式 運送方式 郵費 訂單狀態(tài)購物車:購物車ID 客戶ID 商品ID 訂購時間 訂購數(shù)量 單價 用戶確認供應:供應ID 實際存貨 最低存貨 商品ID 商家

14、ID分類:商品號 商品分類客戶類型屬于:客戶號 客戶類型評論:評論ID 內容 標題 客戶ID 商家ID 評論時間客戶地址所在:客戶號 客戶地址(4)畫出E-R圖圖2:客戶與商品實體間的詳細聯(lián)系E-R圖圖3:網(wǎng)絡購物系統(tǒng)E-R圖四、數(shù)據(jù)庫邏輯結構設計4.1 E-R模型圖轉化為關系表(1)實體轉化為單獨的一張表客戶VIP會員商品商家商品類別地址(2)多對多聯(lián)系轉化為單獨的一張關系表購物車 訂單 評論 供應(3)其他一對多的聯(lián)系通過在多的一方增加屬性來實現(xiàn)客戶表與會員等級:在客戶表中增加會員等級ID商品與商品類型:在商品中增加類型號4.2 描述基本表的關系E-R圖轉化為關系模型,關系的碼用下劃線標出

15、。此為客戶實體對應的關系模式:客戶(客戶號,密碼,會員等級號,)此為VIP會員實體對應的關系模式:VIP會員(會員等級號,等級類型)此為商品實體對應的關系模式:商品(商品號,描述,商品分類,商品名,)此為商家實體對應的關系模式:商家(商家號,商家名,商家電話,)此為商品類別實體對應的關系模式:商品類別(商品類別號,商品類別)此為聯(lián)系“購物車”所對應的關系模式:購物車(購物車號,客戶號,商品號,)此為聯(lián)系“訂單”所對應的關系模式:訂單(訂單號,客戶號,商品號,)此為聯(lián)系“評論”所對應的關系模式:評論(評論號,內容,客戶號,)此為聯(lián)系“供應”所對應的關系模式:供應(供應號,實際存貨,最少存貨,)4

16、.3 所有關系表達到BCNF范式4.4 定義視圖(1)訂單表中只關聯(lián)客戶、商品的ID,而最終客戶核對的應該是包含客戶真實姓名在內的客戶必要信息以及包含商品名稱的商品信息,分別建立兩個視圖:1> 參照商品的訂單細節(jié)create view View_goodsas select * from tb_goods where GoodsID='201201'2>參照客戶信息的訂單細節(jié)create view View_useras select * from tb_user where UserID='201'4.5 定義索引在經(jīng)常查詢的列上(主鍵)建立聚簇索

17、引如:在商品信息表上建立索引create cluster index Index_ GoodsIDon tb_goods(GoodsID)4.6 定義觸發(fā)器(1)注冊客戶自動升級VIP-創(chuàng)建觸發(fā)器tr_grade,實現(xiàn)注冊客戶VIP自動升級Create Trigger tr_grade ON tb_subFor updateAsIF Update(SpPrice)BeginDeclare price moneySelect price=SpPrice From insertedIf price>=30000Update tb_user set GradeID=4ElseIf price&

18、gt;=20000Update tb_user set GradeID=3ElseIf price>=10000Update tb_user set GradeID=2ElseIf price>=0Update tb_user set GradeID=1End(2)更新訂單,訂單金額是商品價格總和-創(chuàng)建一個更新觸發(fā)器,及時更新訂單Create Trigger tr_update On tb_sub For Update AsIf Update (SpCount) Or Update (GPrice)Begin Declare orderNo Bigint,productNo Big

19、intDeclare cur_order Cursor ForSelect SubID,GoodsID From DeletedOpen cur_orderBegin Transaction Fetch cur_order into orderNo,productNoWhile (fetch_status=0)Begin Update tb_subSet tb_sub.SpPrice=tb_sub.SpPrice-D.SpCount*D.GPrice+I.SpCount*I.GPriceFrom inserted I,deleted DWhere tb_sub.subID=I.subID An

20、d I.subID=D.subIDAnd tb_sub.subID=orderNo And I.GoodsID=D.GoodsIDAnd I.GoodsID=productNoFetch cur_order into orderNo,productNoEndCommit tranClose cur_orderDeallocate cur_orderEnd(3)更新購物車,選中商品更新商品總額-更新購物車,選中商品更新商品總額Create Trigger tr_car On tb_car For Update AsIf Update (OrderCount) Or Update (GoodsPr

21、ice)Begin Declare CarID Bigint,GoodsID BigintDeclare cur_car Cursor ForSelect CarID,GoodsID From DeletedOpen cur_carBegin Transaction Fetch cur_car into CarID,GoodsIDWhile (fetch_status=0)Begin Update tb_carSet tb_car.OrderPrice=tb_car.OrderPrice-D.OrderCount*D.GoodsPrice+I.OrderCount*I.GoodsPriceFr

22、om inserted I,deleted DWhere tb_car.CarID=I.CarID And I.CarID=D.CarIDAnd tb_car.CarID=CarID And I.GoodsID=D.GoodsIDAnd I.GoodsID=GoodsIDFetch cur_car into CarID,GoodsIDEndCommit tranClose cur_carDeallocate cur_carEnd(4)創(chuàng)建觸發(fā)器只允許注冊會員在網(wǎng)上下訂單-創(chuàng)建一個觸發(fā)器tr_sub,只允許注冊會員在網(wǎng)上提交訂單Create Trigger tr_sub on tb_subFor

23、 insertAsIf Not Exists(select * From insertedWhere UserID in(select tb_user.UserID from tb_user)BeginRaiserror('提交訂單前請先注冊!',16,1)Rollback TransactionEnd4.7 定義約束(1)確定實體完整性約束主鍵約束(2)參照完整性約束-為tb_user表添加參照性約束alter table tb_userwith nocheckadd constraint fk_user foreign key(GradeID)references tb_g

24、rade(GradeID)-為tb_goods表添加參照性約束alter table tb_goodswith nocheckadd constraint fk_goods foreign key(GTypeID)references tb_type(TypeID)-為tb_address增加外鍵約束alter table tb_addresswith nocheckadd constraint fk_address foreign key(UserID)references tb_user(UserID)(3)用戶自定義完整性約束1>客戶表密碼不能少于6位,且不能與客戶號相同Alter table tb_userAdd constraint Ck_pass Check (6<=len(Userpassword) and Userpassword<>UserID)2> 電子信箱格式為格式Alter table tb_userAdd constraint Ck

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論