资源描述
数据库应用课程设计汇报
网上购物系统数据库设计
学生姓名:***
学 号:201****
班 级:*******
指导老师:*****老师
学 院:**学院
提交日期:6月19日
数据库应用课程设计评阅
评阅项目
完成情况
得分
背景功效需求5%
概念设计
30%
逻辑设计
20%
物理设计
10%
数据库实施
15%
功效实现
10%
文档质量、设计过程表现10%
成绩
目 录
序言 1
1. 需求分析 1
1.1系统功效背景资料 1
1.2系统功效 1
2. 概要结构设计 2
3. 逻辑结构设计 6
3.1关系模式设计 6
3.2 关系模式分析优化 6
4. 数据库物理设计 8
5. 数据库实施 10
5.1数据库构建 10
5.1.1各数据表说明 10
5.1.2数据库创建 11
5.2 数据库操作 11
6. 部分系统功效实现 15
7. 总结 15
序言
网络购物兴起改变了大家购物观念,也改变了大家购物需求。每个人购物清单全部遍布全国各地,面对如此庞大数据流量,网络购物系统应运而生,这个系统关键完成用户在网上购物时填写订单信息所相关到业务,并能够对全部订单经及用户信息进行修改和查询。方便用户和网络商城人员查阅订单信息等。本系统关键建立了基础需求表并优化,在它们之间建立好必需联络方便查询和修改等,完成基础功效。
1. 需求分析
设计本系统模拟用户在网上购物管理内容,包含查询商品信息、订单信息、用户信息、购置后商品评论等处理情况,系统需要管理情况以下:
1.1系统功效背景资料
用户在网上购置商品管理内容包含:
1) 可随时查询可订商品具体情况,如商品分类、生产厂商、每个厂商实际存货量、要求最低存货量和商品其它描述,便于用户选订。
2) 用户可订购多个所需商品,每种商品可订若干份,交清所需金额后,订购处理即告完成。
3) 为便于邮寄,用户需写明以下信息:用户名、EMAIL、姓名、性别、邮政编码、地址等,网店将即时为每一个用户编制唯一代码。
4) 商品售出,而且用户拿到后可对商品进行评价,商品所属网店店主能够对每条评论进行查看,一个商品能够有多人进行评论,系统要给每一条评论编号并统计评论内容、评论时间、发表人等。
5) 网上商城对每种商品订购人数不限,每个用户可数次订购,所订商品亦可反复。
1.2系统功效
1).查询可订购商品具体情况。
2).用户经过管理员依据自己需求选购商品,完成一次订购后需进行结账才能提交订单。
3).查询自己购置情况。
4).可对各库表进行插入、修改、删除、查询等基础操作。
5).能具体查询某商品订出情况,而且能统计出某商品总订购数量和总金额。
6).实现用户完成一次订购任务后汇总总金额。
7).网店可查询用户对商品评价,并进行回复。
2. 概要结构设计
经过对局部应用选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除无须要系统冗余,能够得出网上购物系统E-R图。
图1 “商品”实体E-R图
图2 “用户”实体E-R图
图3 “订单”实体E-R图
图4 “订单明细”实体E-R图
图5 “生产厂商”实体E-R图
图6 “生产明细”实体E-R图
图7 “评论”实体E-R图
网上购物系统E-R图以下:
图8系统E-R图
3. 逻辑结构设计
3.1关系模式设计
依据概念结构设计,能够将系统E-R图转换为以下关系模式(画横线为各关系码):
商品(商品号,商品名称,商品分类,厂商名,商品其它描述,单价),外码:厂商号
用户(用户号,姓名,EMAIL,用户电话,性别,邮政编码,地址),外码:
订单(订单号,用户号,收货地址,订单日期),外码:用户号
订单明细(订单号,商品号,数量,商品总价),外码:订单号,商品号
生产厂商(厂商号,厂商名,商品号,),外码:商品号
生产明细(厂商号,商品号,实际存货量,最低存货量),外码:厂商号,商品号
评论(评论编号,内容,评论时间,用户号),外码:用户号
3.2 关系模式分析优化
1.对以上关系模式进行函数依靠分析
l 考察关系模式:商品(商品名称,商品分类,单价,商品其它描述,厂商号)
商品号—>商品名称
商品号—>商品分类
商品号—>单价
商品号—>商品其它描述
商品号—>厂商名
商品 它只有一个码:(商品编号)这里没有任何属性对(商品编号)部分依靠或传输依靠,所以此关系模式属于3NF。
l 考察关系模式:用户(用户号,姓名,EMAIL,用户电话,性别,邮政编码,地址)
用户号—>姓名
用户号—> EMAIL
用户号—>用户电话
用户号—>性别
用户号—>邮政编码
用户号—>地址
用户 它只有一个码:用户号,这里没有任何属性对用户编码部分依靠或传输依靠,所以此关系模式属于3NF。
l 考察关系模式:订单(订单号,用户号,收货地址,订单日期)
订单号—>用户号
订单号—>收货地址
订单号—>订报日期
订单 它有一个码:(订单号),这里没有任何属性对(订单号)部分依靠或传输依靠,所以此关系模式属于3NF。
l 考察关系模式:订单明细(订单号,商品号,数量,商品总价)
(订单号,商品号)—>数量
(订单号,商品号)—>商品总价
订单详情 它有一个码:(订单号,商品号)这里没有任何属性对(订单号,商品号)部分依靠或传输依靠,所以此关系模式属于3NF。
l 考察关系模式:生产厂商(厂商号,厂商名,商品号)
(厂商号)—>厂商名
(厂商号)—>商品号
厂商 它有一个码:(厂商号),这里没有任何属性对(厂商号)部分依靠或传输依靠,所以此关系模式属于3NF。
l 考察关系模式:生产明细(厂商号,商品号,实际存货量,最低存货量)
(厂商号,商品号)—>实际存货量
(厂商号,商品号)—>最低存货量
l 考察关系模式:评论(评论编号,内容,评论时间,用户号)
(评论编号)—>内容
(评论编号)—>评论时间
(评论编号)—>用户号
2.系统完整性设计
商品(商品号,商品名称,商品分类,厂商名,商品其它描述,单价)其中:商品号为主码,商品名称,商品分类,生产厂商,单价约束全部为非空,商品其它描述可为空。
用户(用户号,姓名,EMAIL,用户电话,性别,邮政编码,地址)其中:用户号为主码;姓名,EMAIL,用户电话,性别,邮政编码,地址约束全部为非空。
订单(订单号,用户号,收货地址,订单日期)其中:订单号为主码;用户号为外码,参考(用户(用户号));收货地址,订单日期约束全部为非空。
订单明细(订单号,商品号,数量,商品总价),(订单号,商品号)为主码;订单号和商品号为外码,分别参考(订单(订单号))和(商品(商品号));数量,商品总价约束全部为非空。
生产厂商(厂商号,厂商名,商品号)其中厂商号为主码;商品号为外码,参考(商品(商品号))厂商名约束为非空。
生产明细(厂商号,商品号,实际存货量,最低存货量)其中(厂商号,商品号)为主码;厂商号和商品号为外码,分别参考(生产厂商(厂商号))和(商品(商品号));实际存货和最低存货约束全部为非空。
评论(评论编号,内容,评论时间,用户号)其中评论编号为主码;用户号为外码,参考(用户(用户号));内容,评论时间,约束全部为非空。
4. 数据库物理设计
表4.1 商品信息表结构
字段名
说 明
类 型
长度
可否为空
约束
ProductID
商品号
字符型
10
否
主键
Productname
商品名称
字符型
20
否
Unitprice
单价
数值型
否
Category
商品分类
字符型
10
否
Manufacturename
厂商名
字符型
10
否
外码
Other
商品其它描述
字符型
50
是
表4.2 用户信息表结构
字段名
说 明
类 型
长度
可否为空
约束
CustomerID
用户号
字符型
10
否
主键
Name
姓名
字符型
20
否
Sex
性别
字符型
8
否
Email
EMAIL
字符型
20
否
Postcode
邮政编码
字符型
10
否
Phonenumber
用户电话
字符型
20
否
Address
地址
字符型
50
否
表4.3 订单信息表结构
字段名
说 明
类 型
长度
可否为空
约束
OrderID
订单号
字符型
10
否
主键
CustomerID
用户号
字符型
20
否
外键
Orderdate
订单日期
数值型
否
Taddress
收货地址
字符型
50
否
表4.5 订单明细信息表结构
字段名
说 明
类 型
长度
可否为空
约束
OrderID
订单号
字符型
10
否
主键、外键
ProductID
商品号
字符型
26
否
主键、外键
quantity
数量
字符型
10
否
Totalprice
总价
字符型
20
否
表4.5 生产厂商信息表结构
字段名
说 明
类 型
长度
可否为空
约束
manufactureID
厂商号
字符型
10
否
主键
manufacturename
厂商名
字符型
26
否
ProductID
商品号
字符型
8
否
外键
表4.6 生产明细信息表结构
字段名
说 明
类 型
长度
可否为空
约束
manufactureID
厂商号
字符型
10
否
主键、外键
ProductID
商品号
字符型
10
否
主键、外键
Pquantity
实际存货量
字符型
10
否
Lquantity
最低存货量
字符型
10
否
表4.7 评论信息表结构
字段名
说 明
类 型
长度
可否为空
约束
CommentID
评论号
字符型
10
否
主键
Comment
内容
字符型
150
否
Commentdate
评论时间
数值型
否
CustomerID
用户号
字符型
10
否
外键
5. 数据库实施
5.1数据库构建
5.1.1各数据表说明
编号
数据表名称
类 型
内容
1
商品
主表
统计报刊信息
2
用户
主表
统计用户信息
3
订单
主表
统计订单基础信息
4
订单明细
辅助表
统计订单具体信息
5
生产厂商
辅助表
统计生产厂商基础信息
6
生产明细
辅助表
统计商品在厂存货信息
7
评论
主表
统计评论信息
5.1.2数据库创建
在SQL SERVER 中创建网上购物系统数据库,在数据库中创建商品,用户,订单,订单明细,生产厂商,生产明细,评论数据表及加入相关约束。创建了满足管理需求视图,写出相关业务操作所需查询语句等。操作代码详见“5973_孔维星.sql”文件。
5.2 数据库操作
--创建数据库shoppingonline
create database shoppingonline
on
(
name=shoppingonline,
filename='c:\shoppingonline_data.mdf',
size=5,
maxsize=10,
filegrowth=10% )
log on
(
name=shoppingonline_log,
filename='c:\shoppingonline_log.ldf',
size=3,
maxsize=5,
filegrowth=1 )
go
--创建商品信息表ProductInfo
create table ProductInfo
(
Productid nchar(10) primary key,
Productname nvarchar(20) not null,
Unitprice money not null,
category nchar(10) not null,
manufacturename nchar(10) not null,
other nvarchar(20) not null,
)
go
--创建用户信息表customerinfo
create table customerinfo
(
customerid nchar(10) primary key,
name nvarchar(20) not null,
sex nchar(1) not null,
email nchar(20) not null,
postcode nchar(10) not null,
phonenumber nchar(11) not null,
address nvarchar(50) not null
)
go
--创建订单信息表orderinfo
create table orderinfo
(
orderid nchar(10) primary key,
customerid nchar(10) not null,
orderdate datetime not null,
taddress nvarchar(50) not null,
foreign key (customerid) references customerinfo(customerid)
)
go
--创建订单明细信息表orderdetailinfo
create table orderdetailinfo
(
orderid nchar(10) not null,
productid nchar(10) not null,
quantity nchar(10) not null,
totalprice nchar(20) not null,
primary key (orderid,productid),
foreign key (orderid) references orderinfo(orderid),
foreign key (productid) references productinfo(productid)
)
go
--创建生产厂商信息表manufactureinfo
create table manufactureinfo
(
manufactureid nchar(10) not null primary key ,
manufacturename nchar(26) not null,
productid nchar(10) not null,
foreign key (productid) references productinfo(productid)
)
go
--创建生产明细信息表producedetailinfo
create table producedetailinfo
(
manufactureid nchar(10) not null,
productid nchar(10) not null,
Pquantity nchar(10) not null,
lquantity nchar(10) not null,
primary key(manufactureid,productid),
foreign key (manufactureid) references manufactureinfo (manufactureid),
foreign key (productid) references productinfo(productid)
)
go
--创建评论信息表commentinfo
create table commentinfo
(
commentid nchar(10) not null primary key ,
comment nchar(3) not null,
commentdate datetime not null,
customerid nchar(10) not null,
foreign key (customerid) references customerinfo(customerid)
)
go
--插入数据
--商品信息表productinfo
insert into productinfo values('0000001','铅笔',2,'黑色','一厂','成绵路号')
insert into productinfo values('0000002','毛笔',8,'墨色','二厂','长虹大道号')
insert into productinfo values('0000003','圆珠笔',5,'蓝色','三厂','仙人路号')
--用户信息表customerinfo
insert into customerinfo values('0000011','王强','男','','432645','','成全部双流')
insert into customerinfo values('0000022','吴霞','女','','564656','','湖北武汉')
insert into customerinfo values('0000033','曾强','男','','582656','','湖南长沙')
go
--订单信息表orderinfo
insert into orderinfo values('0000111','0000011','-02-02','成全部双流')
insert into orderinfo values('0000222','0000022','-03-03','湖北武汉')
insert into orderinfo values('0000333','0000033','-04-04','湖南长沙')
go
--订单明细信息表orderdetailinfo
insert into orderdetailinfo values('0000111','0000001','100','200')
insert into orderdetailinfo values('0000222','0000002','50','400')
insert into orderdetailinfo values('0000333','0000003','100','500')
go
--生产厂商信息表manufactureinfo
insert into manufactureinfo values('0001111','一厂','0000001')
insert into manufactureinfo values('0002222','二厂','0000002')
insert into manufactureinfo values('0003333','三厂','0000003')
go
--生产明细信息表producedetailinfo
insert into producedetailinfo values('0001111','0000001','9000','900')
insert into producedetailinfo values('0002222','0000002','8000','800')
insert into producedetailinfo values('0003333','0000003','7000','700')
go
--评论信息表commentinfo
insert into commentinfo values('0011111','优','-04-04','0000011')
insert into commentinfo values('0022222','良','-05-05','0000022')
insert into commentinfo values('0033333','差','-06-06','0000033')
go
--简单查询
--查询全部商品名称和单价
select productname,unitprice from dbo.ProductInfo
--查询全部用户编号、姓名、地址、联络电话
select customerid,name,address,phonenumber from dbo.customerinfo
--查询全部订单编号和订单日期
select orderid,orderdate from dbo.orderinfo
--查询下过订单用户姓名
select name from dbo.customerinfo join dbo.orderinfo on dbo.customerinfo.customerid=dbo.orderinfo.customerid
--查询订单编号为'0000111'用户号、用户名、性别
select dbo.customerinfo.customerid,name,sex from dbo.customerinfo join dbo.orderinfo on dbo.customerinfo.customerid=dbo.orderinfo.customerid where orderid='0000111'
6. 部分系统功效实现
7. 总结
之前选择网上购物这个题目标时候,认为这个题目应该是相对比较轻易,不过实际起来并非如此。在分析实体时候,原来认为只需要题目给出四个实体就能够了,不过在画E-R图时候发觉有冗余,所以我又添加了“生产明细”和“订单明细”两个表,另外,为了更细化系统,又添加了一个“生产厂商”表。不仅如此,在画E-R图时候,我也犯了部分错误,比如给属性添加属性,这是对知识掌握不牢靠表现,提醒我要回去好好复习了。E-R图画出来以后就轻易了,因为脉络已经基础清楚了,不过在确定字符长度时候还是拿不准到底该写多少,在参考书上内容以后才确定下来。因为VB已经学习了有十二个月时间了,有点生疏,在用VB做部分系统功效实现时候,依据试验指导书一步一步走,最终还是做了出来。
经过这次实践,我对数据库学习有了深入巩固,不过回去以后还得再看一下书才能够,还有VB也得再复习复习了。另外,经过这次实践,也让我第一次把理论联络到了实际,即使这个系统并不太完善,不过只要以后多练习,我相信还是能够掌握这门学科。
展开阅读全文