- 30天學通Java Web項目案例開發
- 吳亞峰 索依娜等編著
- 1699字
- 2019-01-01 03:57:26
2.4 數據庫設計
數據庫就像是系統的“地基”,“地基”的好壞直接決定系統的性能。良好的數據庫設計不僅能提高開發效率,還能為系統功能的擴充留有余地。
2.4.1 數據庫分析
此系統由JSP+Spring+Hibernate+Tomcat+MySQL組成,對數據庫的要求不算太高,故采用適用于中小型企業的MySQL數據庫較為合適。
2.4.2 項目E-R圖
本系統包含的實體主要有:商品、類別、客戶、供應商、管理員等,下面介紹各實體的E-R圖。
(1)商品的E-R圖,如圖2-10所示。

圖2-10 商品的E-R圖
(2)類別及管理員的E-R圖,如圖2-11所示。

圖2-11 管理員、類別的E-R圖
(3)客戶的E-R圖,如圖2-12所示。

圖2-12 客戶的E-R圖
(4)供應商的E-R圖,如圖2-13所示。

圖2-13 供應商的E-R圖
2.4.3 數據庫基本表的設計
本系統中的基本信息表主要有5張表:商品資料表、商品類別表、客戶資料表、供應商資料表、管理員資料表,下面分別對各表進行介紹。
(1)商品資料表:用于記錄庫存商品的基本信息,其主要字段有:商品ID、商品名稱、商品類別、進價、售價、庫存等,具體設計如表2-2所示。
表2-2 商品資料表

建立該表的SQL語句如下:
create table GoodsInfo(Gid varchar(20) primary key, Gname varchar(50) not null,GCid varchar(20), Gamount int not null, Gunit varchar(10) not null, Gpin double not null, Gpout double not null, Foreign key(GCid)references GoodsClassInfo(GCid)on delete cascade)engine innodb;
(2)商品類別表:用于記錄商品的類別,主要由類別ID和類別名稱組成,如表2-3所示。
表2-3 商品類別表

建立該表的SQL語句如下:
create table GoodsClassInfo(GCid varchar(20) primary key,GCname varchar(50) not null)engine innodb;
(3)客戶資料表:用于記錄客戶的一些基本信息,包括客戶ID、客戶名稱、聯系人、公司地址、電話、E-mail、備注,詳細情況如表2-4所示。
表2-4 客戶資料表

建立該表的SQL語句如下:
create table ConsumerInfo(Cid varchar(20) primary key,Cname varchar(50) not null, Clinkman varchar(50) not null,Caddress varchar(50) not null,Ctel varchar(20) not null, Cemail varchar(50) default '暫無',Cremark varchar(100) default '暫無')engine innodb;
(4)供應商資料表:用于記錄供應商的一些基本信息,包括供應商ID、供應商名稱、聯系人、公司地址、電話、E-mail、備注,詳細情況如表2-5所示。
表2-5 供應商資料表

建立該表的SQL語句如下:
create table ProviderInfo(Pid varchar(20) primary key,Pname varchar(50) not null, Plinkman varchar(50) not null,Paddress varchar(50) not null,Ptel varchar(20) not null, Pemail varchar(50),Premark varchar(100))engine innodb;
(5)管理員資料表:該表用于記錄管理員的信息,主要包括管理員ID、用戶名、密碼、級別,具體設計如表2-6所示。
表2-6 管理員資料表

建立該表的SQL語句如下:
create table AdminInfo(Aid varchar(20) primary key,Aname varchar(50) not null,Apwd varchar(20) not null, Alevel varchar(20) default '普通');
2.4.4 數據庫數據表的設計
本系統中的數據表有8張,包括采購信息表及其明細表,銷售信息表及其明細表,客戶退貨表及其明細表,采購退貨表及其明細表,下面對其進行一一介紹。
(1)采購信息表:用于記錄進貨的信息,具體設計如表2-7所示。
表2-7 采購信息表

建立該表的SQL語句如下:
create table StockInfo(Sid varchar(20) primary key,Pid varchar(20),Sdate Date,Sbuyer varchar(50), Stotalprice double not null,Foreign key(Pid) references ProviderInfo(Pid) on delete cascade)engine innodb;
(2)采購明細表:用于記錄具體的采購信息,主要字段有明細表ID、采購ID、商品ID、商品數量、商品單價、總價,具體設計如表2-8所示。
表2-8 采購明細表

建立該表的SQL語句如下:
create table StockDetail(SDid varchar(20) primary key,Sid varchar(20),Gid varchar(20),SDamount int not null, SDprice double,SDtotalprice double,Foreign key(Sid) references StockInfo(Sid) on delete cascade, Foreign key(Gid) references GoodsInfo(Gid) on delete cascade)engine innodb;
(3)銷售信息表:用于記錄銷售信息,包括銷售ID、客戶ID、銷售人等,具體設計如表2-9所示。
表2-9 銷售信息表

建立該表的SQL語句如下:
create table SellInfo(Eid varchar(20) primary key,Cid varchar(20),Edate Date,Eseller varchar(50), Etotalprice double not null,Foreign key(Cid) references ConsumerInfo(Cid) on delete cascade )engine innodb;
(4)銷售明細表:用于記錄具體的銷售信息,主要字段有明細表ID、銷售ID、商品ID、商品數量、商品單價、總價,具體設計如表2-10所示。
表2-10 銷售明細表

建立該表的SQL語句如下:
create table SellDetail(EDid varchar(20) primary key,Eid varchar(20),Gid varchar(20),EDamount int not null, EDprice double,EDtotalprice double,Foreign key(Eid) references SellInfo(Eid) on delete cascade, Foreign key(Gid) references GoodsInfo(Gid) on delete cascade)engine innodb;
(5)客戶退貨表:用于記錄客戶退貨的信息,主要字段包括客戶退貨ID、退貨客戶ID、銷售ID及退貨時間,具體如表2-11所示。
表2-11 客戶退貨表

建立該表的SQL語句如下:
create table ConsumerBack(CBid varchar(20) primary key,Cid varchar(20),Eid varchar(20),CBdate date, Foreign key(Cid) references ConsumerInfo(Cid) on delete cascade, Foreign key(Eid) references SellInfo(Eid) on delete cascade)engine innodb;
(6)客戶退貨明細表:該表用于記錄客戶退貨的詳細信息,詳細設計如表2-12所示。
表2-12 客戶退貨明細表

建立該表的SQL語句如下:
create table ConsumerBackDetail(CBDid varchar(20) primary key,CBid varchar(20),Gid varchar(20), CBDamount int not null,CBDprice double,CBDtotalprice double, Foreign key(CBid) references ConsumerBack(CBid) on delete cascade, Foreign key(Gid) references GoodsInfo(Gid) on delete cascade )engine innodb;
(7)采購退貨表:用于記錄采購退貨的信息,主要字段包括退貨ID、供應商ID、采購ID及退貨時間,具體如表2-13所示。
表2-13 采購退貨表

建立該表的SQL語句如下:
create table ProviderBack(PBid varchar(20) primary key,Pid varchar(20),Sid varchar(20),PBdate date, Foreign key(Pid) references ProviderInfo(Pid) on delete cascade, Foreign key(Sid) references StockInfo(Sid) on delete cascade)engine innodb;
(8)采購退貨明細表:該表用于記錄采購退貨的詳細信息,詳細設計如表2-14所示。
表2-14 采購退貨明細表

建立該表的SQL語句如下:
create table ProviderBackDetail(PBDid varchar(20),PBid varchar(20),Gid varchar(20), PBDamount int not null, PBDprice double,PBDtotalprice double, Foreign key(PBid) references ProviderBack(PBid) on delete cascade, Foreign key(Gid) references GoodsInfo(Gid) on delete cascade )engine innodb;
說明:在開發過程中,數據庫中表的設計直接影響著系統后期的開發,因此對表的設計要相當細致,要為后期的維護和系統性能的擴展打下良好基礎。
- Dreamweaver 8中文版商業案例精粹
- 并行數據挖掘及性能優化:關聯規則與數據相關性分析
- 來吧!帶你玩轉Excel VBA
- Learning Apache Cassandra(Second Edition)
- Python Data Science Essentials
- 3D Printing for Architects with MakerBot
- 基于32位ColdFire構建嵌入式系統
- Visual Basic.NET程序設計
- 網中之我:何明升網絡社會論稿
- 中國戰略性新興產業研究與發展·智能制造裝備
- 貫通開源Web圖形與報表技術全集
- Hands-On SAS for Data Analysis
- 大型機系統應用基礎
- 精通ROS機器人編程(原書第2版)
- ASP.NET學習手冊