超市营销系统数据库实训.docx
- 文档编号:10893527
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:18
- 大小:1.31MB
超市营销系统数据库实训.docx
《超市营销系统数据库实训.docx》由会员分享,可在线阅读,更多相关《超市营销系统数据库实训.docx(18页珍藏版)》请在冰豆网上搜索。
超市营销系统数据库实训
超市营销系统数据库实训
一、系统需求规格说明
1.项目概述
《超市商品销售系统》为展示,明确所要开发的软件应具有的功能、性能,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。
2.主要任务与性能要求
主要任务:
系统的E-R图和相关的SQlserver建立
性能要求:
保证数据的正确与完整
二.系统设计
1.引言
名称:
超市商品销售系统
目的:
让用户结合系统给方便应用
2.参考资料
1.王珊萨师煊,数据库系统概论(第四版),高等教育出版社,2006年5月
2.赵杰等SQLServer数据库管理设计与实现教程清华大学出版社2004年3月
3.系统任务描述
顾客购买商品后应该打印详细购物清单,清单中内容有购买日期、商品编号、商品名称、单价、数量、合计金额,清单最后还要有现金和找零。
顾客分为普通和会员2种,会员购物时需提供会员卡号,结帐后将根据购物金额按照1元1分进行积分的累积。
一定时期可进行积分换购。
此外,本系统应该实现库存查询、销售金额统计及报表打印。
3.研究的网站
(1)凡客:
主要属性:
颜色、尺码、数量
(2)京东商城:
主要属性:
颜色、版本、数量
(3)淘宝商城:
主要属性:
配送地点、付费方式、数量、颜色
总结:
由上面三个网站分析可知购买商品时候的主要属性各不相同,因商品本身而变,但是有些属性是必须的了,例如数量、颜色、付费方式等是在网上购买东西时候大部分都需要的属性
4.数据库概念结构设计
(1)E-R图:
(2)关系图:
5.数据库逻辑结构设计
商品(商品编号、类别、名称、型号、进价、库存数量、销售价、售出数量)
订单(订单号,购买日期、合计金额、会员卡号)
销售明细(订单号,商品编号、单价、数量)
会员(会员卡号,姓名,积分,联系方式)
工作人员(员工编号,姓名,年龄,性别,电话)
goods(gno,gclass,gnamegtypegin_pricegout_pricegin_numbergout_number)
DD(DDnoDDdateDDHYnoDDcountHYno)
XSMX(DDnognoXSMXdjXSMXsl)
HY(HYnoHYnameHYlxfsHYjf)
People(pnopnamepagepsexptele)
商品表
字段名称
数据类型
可否为空
约束条件
说明
gno
Char(6)
NOTNULL
主键
商品编号
gclass
Char(7)
NOTNULL
无
商品种类
gname
char(10)
NOTNULL
无
商品名称
gtype
Char(7)
NOTNULL
无
型号
Gin_price
int
不小于零
进价
Gout_price
int
不小于零
卖出价格
Gin_number
int
不小于零
库存数量
Gout_number
int
不小于零
销售数量
pno
Char(7)
NOTNULL
外键
管理人员编号
订单表
字段名称
数据类型
可否为空
约束条件
说明
DDno
Char(20)
NOTNULL
主键
订单编号
DDdate
datetime
无
订单日期
DDHYno
char(20)
NOTNULL
外键
会员编
DDcount
Char(20)
不小于零
总金额
销售明细表
字段名称
数据类型
可否为空
约束条件
说明
DDno
Char(20)
NOTNULL
外键
订单编号
gno
Char(6)
NOTNULL
外键
商品编号
XSMXdj
char(20)
NOTNULL
单价
XSMXsl
int
不小于零
数量
会员表
字段名称
数据类型
可否为空
约束条件
说明
HYno
char(20
NOTNULL
主键
会员卡号
HYname
char(20)
NOTNULL
无
姓名
HYlxfs
char(20)
NOTNULL
无
联系方式
HYjf
char(20)
不小于零
积分
工作人员表:
字段名称
数据类型
可否为空
约束条件
说明
pno
char(7)
NOTNULL
主键
员工编号
pname
CHAR(10)
NOTNULL
无
姓名
page
char(3)
NOTNULL
无
年龄
psex
char
(2)
NOTNULL
男或女
性别
ptele
CHAR(10)
NOTNULL
无
电话
6.数据库物理结构设计
✧商品表(商品编号、类别、名称、型号、进价、库存数量、销售价、售出数量)
CREATETABLEgoods
(gnoCHAR(6)PRIMARYKEY,
gclassCHAR(7)NOTNULL,
gnameCHAR(10)NOTNULL,
gtypeCHAR(7)NOTNULL,
gin_priceintCHECK(gin_price>=0),
gout_priceintCHECK(gout_price>=0),
gin_numberintCHECK(gin_number>=0),
gout_numberintCHECK(gout_number>=0),
pnochar(7)NOTNULL,
FOREIGNKEY(pno)REFERENCESpeople(pno),
)
插入商品数据
✧订单表(订单号,购买日期)
createtableDD
(DDnochar(20)primarykey,
DDdatedatetime,
DDHYnochar(20),
DDcountchar(20)check(DDcount>=0),
foreignkey(DDHYno)referencesHY(HYno),
);
插入订单数据
✧销售明细表(订单号,商品编号、单价、数量)
createtableXSMX
(DDnochar(20)notnull,
gnochar(6)notnull,
XSMXdjchar(20)notnull,
XSMXslintcheck(XSMXsl>=0),
primarykey(DDno,gno),
foreignkey(DDno)referencesDD(DDno),
foreignkey(gno)referencesgoods(gno),
);
插入销售明细数据
✧会员表(会员卡号,姓名,积分,联系方式)
createtableHY
(HYnochar(20)primarykey,
HYnamechar(20)notnull,
HYlxfschar(20)notnull,
HYjfchar(20),
check(HYjf>=0),
);
插入会员数据
✧工作人员表(员工编号,姓名,年龄,性别,电话)
CREATETABLEpeople
(pnochar(7)PRIMARYKEY,
pnameCHAR(10)NOTNULL,
pagechar(3)NOTNULL,
psexchar
(2)NOTNULL,
pteleCHAR(10)NOTNULL
)
插入人员数据
7.主要功能实现
1.查询处理
(1)查询goods表,将商品按商品号降序排列
select*
fromgoods
orderbygnodesc
(2)查询pelple表中年龄大约22的员工号
selectpno,page
frompeople
wherepage>22
(3)连接查询
查询管理‘001’号商品的工作人员编号、性别、年龄、姓名
selectpeople.pno,page,psex,pname
frompeoplejoingoodsongoods.pno=people.pno
wheregno='001'
(4)嵌套查询
查询管理编号为002的工作人员姓名,工作编号,性别
selectpno,pname,psex
frompeople
wherepnoin(
selectpnofromgoods
wheregno='002'
(5)模糊查询
查询名字中有’张’字的员工姓名、性别、工作编号、年龄
SELECTpname,pno,psex,page
frompeople
wherepnamelike'张%'
(6)查询订单号为'3303'的客户订购的商品编号,商品名称,商品数量,商品单价
selectDDno,XSMX.gno,XSMXsl,XSMXdj,gname
fromXSMXjoingoodsonXSMX.gno=goods.gno
whereDDno='3303'
2.创建视图
(1)商品号,商品型号,卖出价视图
createviewA_1
as
selectgno,gtype,gout_price
fromgoods
(2)工作人员编号,工作人员性别
createviewA_2
AS
selectpno,psex
frompeople
3.创建存储过程
(1)创建金额统计的存储过程
createprocedure金额统计(@st_gnochar(6),@moneyintoutput)
as
DECLARE@out_priceint
DECLARE@out_numberint
SELECT@out_price=gout_price,@out_number=gout_number,@money=@out_price*@out_number
FROMgoods
wheregno=@st_gno
运行销售金额
declare@st_gnochar(6),@moneyint
select@st_gno='005',@money=’12000’
exec金额统计@st_gno,@moneyoutput
select*,gno=@st_gno,'销售金额'=@money
fromgoods
wheregno=@st_gno
(2)创建打印订单的存储过程
createprocedure打印订单(@st_DDnochar(6))
as
SELECTDD.DDno,DDdate,XSMXdj,XSMXsl,XSMXxj,XSMXzl,XSMXhjje,XSMX.gno,gclass,gname,gtype
FROMgoodsjoinXSMXongoods.gno=XSMX.gnojoinDDonXSMX.DDno=DD.DDno
whereDD.DDno=@st_DDno
运行打印订单
declare@st_DDnochar(6)
select@st_DDno='3301'
exec打印订单@st_DDno
(3)创建视图创建查询库存的存储过程
createprocedure查询库存(@st_gnochar(6),@numberintoutput)
as
DECLARE@in_numberint
DECLARE@out_numberint
SELECT@in_number=gin_number,@out_number=gout_number,@number=@in_number-@out_number
FROMgoods
wheregno=@st_gno
运行查询库存
DECLARE@numberint
DECLARE@st_gnochar(6)
select@st_gno='0001'
exec查询库存@st_gno,@numberoutput
selectgno=@st_gno,'当前库存'=@number
4.创建函数
(1)金额统计函数
CREATEFUNCTIONfn_f1(@st_gnochar(6))
RETURNSint
AS
BEGIN
DECLARE@out_priceint
DECLARE@out_numberint
DECLARE@moneyint
SELECT@out_price=gout_price,@out_number=gout_number,@money=@out_price*@out_number
FROMgoods
wheregno=@st_gno
RETURN@money
END
(2)运行统计函数
declare@st_gnochar(6)
set@st_gno='0003'
SELECTdbo.fn_f1(@st_gno)
三.收获和体会
通过这次数据库的上机操作,我学到了很多东西,通过真实的上机操作,我明白了许多课上学习所学不到的东西,上课讲的基本上都是理论性的知识,而数据库乃至我们整个专业都是离不开上机操作,离不开实际的操作的,通过上机的实际操作,通过解决上机调试出现的各种错误,我更加明白了上机操作的重要性,通过此次系统的做了一个小的数据库,我基本掌握了数据库课上讲解的知识,虽然此次的数据库很小,但是我还是通过此明白了数据库建立的整个过程!
此次上机操作我的收获很大,不光在数据库知识上,还在自信心上,以前觉得编程这种东西很难,自己不适合编程,但是通过此次操作,我觉得只要用心,其实这些并不是不能做到的,感谢学校和老师能给我们这次机会!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 营销 系统 数据库