數據庫應用課程設計

 

                                                                                          武漢紡織大學

                                                                                      數學與計算機學院

                                                                                數據庫應用課程設計報告

 

 

 

                                                                               學生姓名:      xxxxxx               

                                                                               學號:          xxxxxxxxxx           

                                                                               班級:          xxxxxxxxxxxx         

                                                                               指導老師:      xxxx老師             

                                                                               評定成績:                                    

                                                                               填寫時間:      2019-06-29           

 

更多學習資源,請關注本人個人微信公衆號:

                                           個人公衆號:

                                            我的微信號:

                                                    

目錄

一、.... 課程設計目的.. 1

二、.... 課程設計題目.. 1

三、.... 課程設計背景和主要內容.. 1

四、.... 可行性分析.. 1

4.1 技術可行性.... 1

4.2 經濟可行性.... 1

4.2 法律可行性.... 1

4.2操作可行性.... 1

五、.... 業務需求分析.. 1

5.1 網上商城主要業務流程的活動圖描述... 2

5.2 網上商城用例圖描述.... 4

六、.... 系統總體設計.. 5

6.1 系統架構設計.... 5

6.2 功能模塊設計.... 6

6.3 網上商城完整功能圖:.... 7

6.4 系統數據流程分析:.... 8

6.5 系統E-R圖:.... 10

七、.... 數據庫表的詳細設計.. 11

7.1 adminuser(管理員). 11

7.2 category(一級分類). 11

7.3 categorySecond(二級分類). 11

7.4 orderItem(訂單列表). 11

7.5 orders(訂單信息表). 11

7.6 product(產品信息表). 12

7.7 user(用戶信息表). 12

八、.... 商城數據庫shop建立.. 12

8.1 數據庫建立.... 12

九、.... 商城系統實現.. 15

9.1 功能頁面模塊的實現.... 15

十、.... 課程設計的心得和體會.. 19

 

 

   (1)掌握進行數據庫應用系統開發的基本思路、方法和步驟,通過整個數據庫系統的設計流程,使學生進一步掌握數據庫的操作、管理和維護、開發等數據庫核心內容。

    (2)將之前所學的需求分析、java代碼編寫、數據庫設計、軟件測試技術結合起來完成此次課程設計。

    (3)培養學生在項目開發中團隊合作精神、創新意識及能力。

 

   JavaWeb-網上商城系統

 

   隨着人們生活水平的提高,對物質要求也越來越高。人們網購的消費也逐年增長,所以電子商務發展十分迅速,網上商城應運而生,爲人們的網上購物提供了好的平臺。電子商城,跟在線購物有關。它是一個JavaWeb項目,涉及到商品展示瀏覽,數據爬取,下單模擬支付,用戶評論,加入購物車,搜索商品,購買商品等等,以及後臺管理。並且爲了增加用戶體驗,優化了前臺頁面,首頁較爲美觀。

 

4.1 技術可行性

利用javaweb知識可以實現

    採用各種最新框架和技術

4.2 經濟可行性

   該網上商城項目部署在了阿里雲的雲服務器上面, 9.9元/月

4.2 法律可行性

   可行,自己寫的網站

4.2操作可行性

   操作較爲簡單,有網購經歷的用戶都可以快速適應商城操作

 

5.1 網上商城主要業務流程的活動圖描述

    主要的業務流程有三個:商品信息瀏覽、商品訂購信息刪除或更新、訂單信息處理。

                                     

                                                             圖1:顧客進行商品瀏覽查詢操作

    商品瀏覽:顧客可以瀏覽商城上商品的所有信息,如果需要查詢,則需要登錄後才能進行,在選購到自己所需的物品後,即可提交訂單

                                  

                                                           圖2:顧客進行商品訂購刪除或更新操作

 

    商品訂購信息刪除或更新:用戶登錄後,可在“我的訂單”模塊查找到待刪除或更新的訂購信息,並對該信息進行相應的操作。

                                     

                                                              圖3:管理員進行訂單處理操作

 

    訂單信息處理:管理員登錄後臺系統後,即可進行客戶訂單的狀態以及庫存的更新。

 

5.2 網上商城用例圖描述

遊客:

                                                  

                                                                                                    圖4:遊客請求服務用例圖

 

用戶:

                       

圖5:用戶請求服務用例圖

 

管理員:

                                  

                                                                     圖6:管理員請求服務用例圖

 

 

6.1 系統架構設計

                                              

                                                                        圖7:系統架構設計

 

 

6.2 功能模塊設計

 

                                             

                                                                                 圖8:功能模塊結構圖

 

 

基本功能詳細描述:

(1)初始顯示首頁,有導航欄,和二級菜單,用戶可以瀏覽商品信息;

(2)用戶登錄成功後,在首頁會顯示用戶信息,新用戶可以選擇註冊賬號,然後再登錄;

(3)可以在首頁搜索框裏面搜索想要的相關商品,然後跳轉到搜索結果頁面顯示所有相關商品信息;

(4)用戶瀏覽商品時可以點擊商品鏈接,進一步瞭解商品詳細信息;

(5)在商品詳情頁面,用戶可以將喜歡的商品加入購物車;

(6)在商品詳情頁面,用戶可以發表對商品的評論,上傳圖片和點贊;

(7)用戶可以在購物車裏面看到自己所有收藏商品的信息,也可以刪除商品,還可以將商品加入訂單列表;

(8)用戶在訂單列表裏面可以看到自己所有的訂單詳情,可以點擊購買,從而進行支付。

(9)模擬支付,調用支付寶接口,相關數據會在支付頁面顯示,支付方式多種可選。

(10)在後臺,管理員擁有所有權限,可以對用戶,商品分類和商品還有訂單等信息進行管理,比如CRUD。

 

擴展功能詳細描述:

(1)商品推薦功能,根據用戶這段時間搜索過的商品,推薦給用戶類似的可能感興趣的商品,並展示在首頁。

(2)模擬支付

(3)二級菜單的展示

(4)商品分類展示,包含一二級分類。

    (5)數據庫存儲圖片

    (6)分佈式多線程爬蟲,爬取大量數據,效率和安全性高。

 

 

6.3 網上商城完整功能圖:

                              

                                                                           圖9:完整功能結構圖

 

 

6.4 系統數據流程分析:

                                                

                                                                                 圖10:第一層流程圖

 

                                         

                                                                        圖11:第二層流程圖(管理員)

 

 

                                       

                                                                       圖12:第二層流程圖(商品)

 

 

    

                                                                          圖13:第二層流程圖(訂單)

 

6.5 系統E-R圖:

 

                                                                                      圖14:網上商城系統E-R圖

 

7.1 adminuser(管理員)

描述:管理員信息表

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

id

管理員ID

int

10,0

 

2

password

密碼

varchar

255

 

 

3

username

用戶名

varchar

255

 

 

 

7.2 category(一級分類)

描述:一級分類信息表

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

cid

一級分類ID

int

10,0

 

2

cname

一級分類名稱

varchar

255

 

 

 

7.3 categorySecond(二級分類)

描述:二級分類信息表

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

csid

二級分類ID

int

10,0

 

2

csname

二級分類名稱

varchar

255

 

 

3

cid

一級分類ID

int

10,0

 

 

7.4 orderItem(訂單列表)

描述:訂單列表信息

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

itemid

訂單列表ID

int

10,0

 

2

count

訂單數量

int

11

 

 

3

subtotal

訂單總價

double

11

 

 

4

pid

商品ID

int

10,0

 

5

oid

訂單詳情ID

int

10,0

 

6

uid

用戶ID

int

10,0

 

 

7.5 orders(訂單信息表)

描述:訂單信息表

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

oid

訂單編號ID

int

10,0

 

2

total

訂單總價

double

11

 

 

3

ordertime

訂單時間

datetime

 

 

 

4

state

訂單狀態

int

11

 

 

5

name

客戶姓名

varchar

255

 

 

6

phone

聯繫電話

varchar

11

 

 

7

uid

客戶id

int

10,0

 

 

7.6 product(產品信息表)

描述:產品信息表

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

pid

產品ID

int

10,0

 

2

pname

產品名稱

varchar

255

 

 

3

market_price

交易價格

double

 

 

 

4

shop_price

售價

double

 

 

 

5

image

圖片地址

varchar

255

 

 

6

pdesc

產品描述

varchar

255

 

 

7

is_hot

是否熱賣

int

11

 

 

8

pdate

生產日期

datetime

 

 

 

9

csid

二級分類ID

int

10,0

 

 

7.7 user(用戶信息表)

描述:用戶信息表

序號

字段名稱

字段描述

字段類型

長度

允許空

缺省值

1

uid

用戶ID

int

10,0

 

2

username

用戶姓名

varchar

255

 

 

3

password

用戶密碼

varchar

255

 

 

4

name

用戶真實姓名

varchar

255

 

 

5

email

電子郵箱

varchar

255

 

 

6

phone

電話

varchar

255

 

 

7

addr

地址

varchar

255

 

 

8

state

是否激活

int

11

 

 

9

code

激活碼

varchar

255

 

 

 

8.1 數據庫建立

 

adminUser表:

DROP TABLE IF EXISTS `adminuser`;

CREATE TABLE `adminuser` (

  `uid` int(11) NOT NULL AUTO_INCREMENT,

  `username` varchar(255) DEFAULT NULL COMMENT '管理員姓名',

  `password` varchar(255) DEFAULT NULL COMMENT '密碼',

  PRIMARY KEY (`uid`)

) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

category表:

DROP TABLE IF EXISTS `category`;

CREATE TABLE `category` (

  `cid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',

  `cname` varchar(255) DEFAULT NULL COMMENT '類型名稱',

  PRIMARY KEY (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

 

categorySecond表:

DROP TABLE IF EXISTS `categorysecond`;

CREATE TABLE `categorysecond` (

  `csid` int(11) NOT NULL AUTO_INCREMENT COMMENT '第二類型id',

  `csname` varchar(255) DEFAULT NULL COMMENT '第二類型名稱',

  `cid` int(11) DEFAULT NULL COMMENT '第一類型id',

  PRIMARY KEY (`csid`),

  KEY `FK936FCAF21DB1FD15` (`cid`),

  CONSTRAINT `FK936FCAF21DB1FD15` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;

 

orderItem表:

DROP TABLE IF EXISTS `orderitem`;

CREATE TABLE `orderitem` (

  `itemid` int(11) NOT NULL AUTO_INCREMENT COMMENT '訂單條id',

  `count` int(11) DEFAULT NULL COMMENT '數量',

  `subtotal` double DEFAULT NULL COMMENT '售價',

  `pid` int(11) DEFAULT NULL COMMENT '產品id',

  `oid` int(11) DEFAULT NULL COMMENT '訂單id',

  `uid` int(11) DEFAULT NULL,

  PRIMARY KEY (`itemid`),

  KEY `FKE8B2AB6166C01961` (`oid`),

  KEY `FKE8B2AB6171DB7AE4` (`pid`),

  KEY `FKE8B2AB6140ACF87A` (`oid`),

  KEY `FKE8A41F815ECEA8B2` (`uid`),

  CONSTRAINT `FKE8A41F815ECEA8B2` FOREIGN KEY (`uid`) REFERENCES `orders` (`oid`),

  CONSTRAINT `FKE8B2AB6140ACF87A` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid`),

  CONSTRAINT `FKE8B2AB6171DB7AE4` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`)

) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8;

 

orders表:

DROP TABLE IF EXISTS `orders`;

CREATE TABLE `orders` (

  `oid` int(11) NOT NULL AUTO_INCREMENT COMMENT '訂單編號',

  `total` double DEFAULT NULL COMMENT '售價',

  `ordertime` datetime DEFAULT NULL COMMENT '訂單時間',

  `state` int(11) DEFAULT NULL,

  `name` varchar(20) DEFAULT NULL COMMENT '客戶姓名',

  `phone` varchar(20) DEFAULT NULL COMMENT '聯繫電話',

  `addr` varchar(50) DEFAULT NULL COMMENT '地址',

  `uid` int(11) DEFAULT NULL COMMENT '客戶id',

  PRIMARY KEY (`oid`),

  KEY `FKC3DF62E5AA3D9C7` (`uid`),

  CONSTRAINT `FKC3DF62E5AA3D9C7` FOREIGN KEY (`uid`) REFERENCES `user` (`uid`)

) ENGINE=InnoDB AUTO_INCREMENT=9031 DEFAULT CHARSET=utf8;

product表:

DROP TABLE IF EXISTS `product`;

CREATE TABLE `product` (

  `pid` int(11) NOT NULL AUTO_INCREMENT COMMENT '產品id',

  `pname` varchar(255) DEFAULT NULL COMMENT '名稱',

  `market_price` double DEFAULT NULL COMMENT '交易價格',

  `shop_price` double DEFAULT NULL COMMENT '售價',

  `image` varchar(255) DEFAULT NULL COMMENT '圖片',

  `pdesc` varchar(255) DEFAULT NULL COMMENT '產品描述',

  `is_hot` int(11) DEFAULT NULL COMMENT '是否熱賣',

  `pdate` datetime DEFAULT NULL COMMENT '日期',

  `csid` int(11) DEFAULT NULL COMMENT '第二類型id',

  PRIMARY KEY (`pid`),

  KEY `FKED8DCCEFB9B74E02` (`csid`),

  CONSTRAINT `FKED8DCCEFB9B74E02` FOREIGN KEY (`csid`) REFERENCES `categorysecond` (`csid`)

) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8;

 

user表:

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

  `uid` int(11) NOT NULL AUTO_INCREMENT,

  `username` varchar(255) DEFAULT NULL,

  `password` varchar(255) DEFAULT NULL,

  `name` varchar(255) DEFAULT NULL,

  `email` varchar(255) DEFAULT NULL,

  `phone` varchar(255) DEFAULT NULL,

  `addr` varchar(255) DEFAULT NULL,

  `state` int(11) DEFAULT NULL,

  `code` varchar(64) DEFAULT NULL,

  PRIMARY KEY (`uid`)

) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

 

9.1 功能頁面模塊的實現

    (1)初始顯示首頁,有導航欄和二級菜單,用戶可以瀏覽商品信息,可以進行登錄和註冊以及查看購物車。

                      

                                                                    圖15:商城系統首頁

 

(2)用戶登錄成功後,在首頁會顯示用戶信息,新用戶可以選擇註冊賬號,然後再登錄;

                                                                           圖16:商城系統登錄頁面

 

                                                                 圖17:商城系統註冊頁面

 

(3)用戶瀏覽商品時可以點擊商品鏈接,進一步瞭解商品詳細信息

                      

                                                         圖18:商城系統商品詳情頁面

 

(4)在商品詳情頁面,用戶可以將喜歡的商品加入購物車;

 

                                                                   圖19:商城系統商品購物車頁面

 

(5)用戶可以在購物車裏面看到自己所有收藏商品的信息,也可以刪除商品,還可以將商品加入訂單列表;

                                      

                                                                 圖20:商城系統商品我的訂單頁面

 

(6)模擬支付,調用易寶支付接口,相關數據會在支付頁面顯示,支付方式多種可選。

 

                                                              圖21:商城系統商品支付頁面

 

(7)後臺登錄頁面,管理員登錄後,對後臺數據進行操作

 

                                                                     圖22:商城系統後臺登錄頁面

 

(8)後臺管理頁面,可以對用戶、一級分類、二級分類、商品、訂單進行系統的管理。

                                                                      圖23:商城系統後臺管理頁面

 

 

經過此次課程設計,將數據庫、前後端完整的過了一遍,自己對於上學期學習的java知識更加的熟悉,用到了經典的mvc設計思想且對於StartUML等工具的使用更加的熟悉。雖然系統的基本功能已經實現,但還是存在系統不穩定、數據解析太慢,查詢響應時間太長等一些缺點。這些問題雖然對於目前這種小型的系統影響並不是很大,但是當訪問量和查詢過大的時候,這些問題所帶來的影響可能會被無限的放大。這也是作爲一個程序設計者必須要考慮到的因素。

開發一套系統,最重要的就是細心,需要充分考慮到該系統的現實意義,也讓我感受到網站的製作並不是很難,但是也不太容易做好。

總之,對於本系統的實現,也感覺到了很多的不足,對於原生的js代碼比較陌生,對於接口的調用程序的介紹不習慣於去查看官方的API文檔等等。但是總體來說,進一步提高了自己的編碼規範和水平,不管是在以後的學習還是工作中都應該不斷的學習,將課本知識與實踐結合起來,才能更好的理解。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章