您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 超市营销系统数据库实训
一、系统需求规格说明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)商品表字段名称数据类型可否为空约束条件说明gnoChar(6)NOTNULL主键商品编号gclassChar(7)NOTNULL无商品种类gnamechar(10)NOTNULL无商品名称gtypeChar(7)NOTNULL无型号Gin_priceint不小于零进价Gout_priceint不小于零卖出价格Gin_numberint不小于零库存数量Gout_numberint不小于零销售数量pnoChar(7)NOTNULL外键管理人员编号订单表字段名称数据类型可否为空约束条件说明DDnoChar(20)NOTNULL主键订单编号DDdatedatetime无订单日期DDHYnochar(20)NOTNULL外键会员编DDcountChar(20)不小于零总金额销售明细表字段名称数据类型可否为空约束条件说明DDnoChar(20)NOTNULL外键订单编号gnoChar(6)NOTNULL外键商品编号XSMXdjchar(20)NOTNULL单价XSMXslint不小于零数量会员表字段名称数据类型可否为空约束条件说明HYnochar(20NOTNULL主键会员卡号HYnamechar(20)NOTNULL无姓名HYlxfschar(20)NOTNULL无联系方式HYjfchar(20)不小于零积分工作人员表:字段名称数据类型可否为空约束条件说明pnochar(7)NOTNULL主键员工编号pnameCHAR(10)NOTNULL无姓名pagechar(3)NOTNULL无年龄psexchar(2)NOTNULL男或女性别pteleCHAR(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*fromgoodsorderbygnodesc(2)查询pelple表中年龄大约22的员工号selectpno,pagefrompeoplewherepage22(3)连接查询查询管理‘001’号商品的工作人员编号、性别、年龄、姓名selectpeople.pno,page,psex,pnamefrompeoplejoingoodsongoods.pno=people.pnowheregno='001'(4)嵌套查询查询管理编号为002的工作人员姓名,工作编号,性别selectpno,pname,psexfrompeoplewherepnoin(selectpnofromgoodswheregno='002'(5)模糊查询查询名字中有’张’字的员工姓名、性别、工作编号、年龄SELECTpname,pno,psex,pagefrompeoplewherepnamelike'张%'(6)查询订单号为'3303'的客户订购的商品编号,商品名称,商品数量,商品单价selectDDno,XSMX.gno,XSMXsl,XSMXdj,gnamefromXSMXjoingoodsonXSMX.gno=goods.gnowhereDDno='3303'2.创建视图(1)商品号,商品型号,卖出价视图createviewA_1asselectgno,gtype,gout_pricefromgoods(2)工作人员编号,工作人员性别createviewA_2ASselectpno,psexfrompeople3.创建存储过程(1)创建金额统计的存储过程createprocedure金额统计(@st_gnochar(6),@moneyintoutput)asDECLARE@out_priceintDECLARE@out_numberintSELECT@out_price=gout_price,@out_number=gout_number,@money=@out_price*@out_numberFROMgoodswheregno=@st_gno运行销售金额declare@st_gnochar(6),@moneyintselect@st_gno='005',@money=’12000’exec金额统计@st_gno,@moneyoutputselect*,gno=@st_gno,'销售金额'=@moneyfromgoodswheregno=@st_gno(2)创建打印订单的存储过程createprocedure打印订单(@st_DDnochar(6))asSELECTDD.DDno,DDdate,XSMXdj,XSMXsl,XSMXxj,XSMXzl,XSMXhjje,XSMX.gno,gclass,gname,gtypeFROMgoodsjoinXSMXongoods.gno=XSMX.gnojoinDDonXSMX.DDno=DD.DDnowhereDD.DDno=@st_DDno运行打印订单declare@st_DDnochar(6)select@st_DDno='3301'exec打印订单@st_DDno(3)创建视图创建查询库存的存储过程createprocedure查询库存(@st_gnochar(6),@numberintoutput)asDECLARE@in_numberintDECLARE@out_numberintSELECT@in_number=gin_number,@out_number=gout_number,@number=@in_number-@out_numberFROMgoodswheregno=@st_gno运行查询库存DECLARE@numberintDECLARE@st_gnochar(6)select@st_gno='0001'exec查询库存@st_gno,@numberoutputselectgno=@st_gno,'当前库存'=@number4.创建函数(1)金额统计函数CREATEFUNCTIONfn_f1(@st_gnochar(6))RETURNSintASBEGINDECLARE@out_priceintDECLARE@out_numberintDECLARE@moneyintSELECT@out_price=gout_price,@out_number=gout_number,@money=@out_price*@out_numberFROMgoodswheregno=@st_gnoRETURN@moneyEND(2)运行统计函数declare@st_gnochar(6)set@st_gno='0003'SELECTdbo.fn_f1(@st_gno)三.收获和体会通过这次数据库的上机操作,我学到了很多东西,通过真实的上机操作,我明白了许多课上学习所学不到的东西,上课讲的基本上都是理论性的知识,而数据库乃至我们整个专业都是离不开上机操作,离不开实际的操作的,通过上机的实际操作,通过解决上机调试出现的各种错误,我更加明白了上机操作的重要性,通过此次系统的做了一个小的数据库,我基本掌握了数据库课上讲解的知识,虽然此次的数据库很小,但是我还是通过此明白了数据库建立的整个过程!此次上机操作我的收获很大,不光在数据库知识上,还在自信心上,以前觉得编程这种东西很难,自己不适合编程,但是通过此次操作,我觉得只要用心,其实这些并不是不能做到的,感谢学校和老师能给我们这次机会!
本文标题:超市营销系统数据库实训
链接地址:https://www.777doc.com/doc-1411054 .html