超市销售数据库Word文件下载.docx
- 文档编号:18507821
- 上传时间:2022-12-18
- 格式:DOCX
- 页数:19
- 大小:204.92KB
超市销售数据库Word文件下载.docx
《超市销售数据库Word文件下载.docx》由会员分享,可在线阅读,更多相关《超市销售数据库Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
货架(货架编号,管理员号,货架名称);
管理员(管理员号,姓名,联系电话,上班时间,下班时间,月薪);
退货单(退货单号,商品编号,退货数量);
打印(退货单号,销售单号,营业员号,打印时间);
2、用户子模式建立
用户子模式可通过建立视图来表示。
视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
定义视图可以简化应用程序、可以实现一定的权限控制。
为了满足用户需求及方便后期数据库实施阶段的设计,此系统设计了如下视图。
各视图定义:
商品保质期(商品名称,生产日期,保质期,过期日期)
下架商品(商品名称,货架名称,过期日期)
营业员基本信息(营业员号,上班时间,下班时间,月薪,联系电话)
会员总消费情况(卡号,姓名,累计消费)
商品价格(商品名称,价格)
商品存放(商品名称,货架名称)
缺货商品(商品名称,现有存量,底线存量)
货架信息(货架名称,存放商品名)
上班情况(上班时间,营业员姓名,管理员姓名)
工作人员联系方式(姓名,编号,联系电话)
工作人员工资信息(姓名,编号,工资)
四、数据库物理设计
此数据库系统建立的索引如下所述。
(1)对于基本表ShopAssistant(营业员),由于要经常对属性列Snum查询从而获得某个营业员的完整信息,并且很少对其更新,因此可以给属性列Snum建一个聚簇索引。
(2)同理对于基本表Member(会员),由于要经常对属性列Mnum查询从而获得某个会员的完整信息,并且很少对其更新,因此可以给属性列Mnum建一个聚簇索引。
(3)对于Adminastrator(管理员),可在其属性列Anum上建立唯一性索引,索引值按降序排列。
(4)同样对于基本表GoodsShelf(货架)、Goods(商品),可在其主属性上建立唯一性索引。
(5)对于基本表BillSell(销售单)、SellGoods(销售商品)、ReturnGoods(退货单)、PrintBill(打印),由于其属性值经常发生变化,权衡系统为维护索引付出的代价,可考虑不建立索引。
五、数据库实施与测试
数据库实施与测试阶段主要内容包括数据库实施和测试两个部分。
1、数据库实施
1.1数据库及数据库对象建立
主要包括:
数据库、基本表、视图、索引、触发器以及存储过程。
相应T-SQL和PL/SQL语句详见附录.
1.2数据入库
对各个数据表成功要录入了50条左右的测试记录,测试结果满足设计要求。
2、数据库测试
数据库测试阶段主要内容是对建立的数据库及数据库对象进行测试,对测试结果进行分析,是否满足设计要求。
六、总结
通过数据库课程设计实习,对数据库知识有了更广泛的了解,在数据库的应用方面有了很大的收获。
(2)加深了对数据库系统相关知识和SQLSERVER2008数据库相关功能的理解。
以前只停留于记忆书本上关于数据库系统的理论知识,没有切身实地的实践过,而通过这次实习我再次加深了对数据库相关功能的理解与应用。
(3)进一步掌握相关的SQL语句。
开发设计超市销售管理系统的过程中牵涉到相当多基本表的建立,视图、索引以及存储过程的设计,这让我对这些SQL语句操作更熟练了。
(4)熟悉了对项目开发的大致过程。
这次系统开发,我更加明白体验到了数据库系统开发的过程,包括系统需求分析、概念设计、逻辑设计、物理设计,再到数据库实施、系统的测试和调试,对项目(系统)开发的大致流程有了一定的了解,为以后的系统的开发打下了良好的基础。
同样在在这次实习中,我看到了自己的基础知识的薄弱性,更体验到了基础知识的重要性。
比如说对具体的SQL语句还不是很熟悉,在画E-R图、设计带输出变量的存储过程以及建立相关索引(聚簇索引)时感到有些棘手。
遇到问题不可怕,其实能遇到问题是好事,它能让我在解决问题时学到更多的新知识,更能增加我的自信。
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力,都能提供有效的技术保障。
但超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,本系统只能做出其中的销售管理部分功能,只适合小型超市使用。
由于自己初次独立设计开发数据库系统,能力非常有限,加上时间仓促,本系统毫无疑问有许多的不足之处。
对于出现的以上问题,我们深表歉意,恳请老师批评指正。
附录
1、创建数据库
createdatabaseSupermarket_SM;
2、创建基本表
createtableShopAssistant(
Snumchar(10)primarykey,
Snamechar(10)notnull,
Splacechar(10),
Swtimechar(10),
Sctimechar(10),
Ssalaarynumeric(10,1),
Sphonechar(20)
)
createtableAdministrator(
Anumchar(5)primarykey,
Anamechar(15)notnull,
Awtimechar(10),
Actimechar(10),
Asalarynumeric(10,1),
Aphonechar(25)
createtableMember(
Mnumchar(15)primarykey,
Mnamechar(15),
Mpasswordchar(6)notnull,
MregisterTimedate,
Mexpensenumeric(10,2)
createtableGoodsShelf(
GSnumchar(10)primarykey,
Anumchar(5)foreignkeyreferencesAdministrator(Anum),
GSnamechar(15),
createtableGoods(
Gnumchar(10)primarykey,
GSnumchar(10)foreignkeyreferencesGoodsShelf(GSnum),
Gbarcodechar(20),
Gnamechar(20),
Gpricenumeric(5,2),
GSstocksmallint,
GSlimitsmallint,
Gproducetimedate,
Gtimeint,
Gsupplierchar(50)
createtableBillSell(
Bnumchar(15)primarykey,
Snumchar(10)foreignkeyreferencesShopAssistant(Snum),
Mnumchar(15)foreignkeyreferencesMember(Mnum),
Bdatesmalldatetime,
Bdiscountchar
(2)
createtableSellGoods(
Bnumchar(15),
Gnumchar(10),
Bquantitysmallint,
primarykey(Gnum,Bnum),
foreignkey(Gnum)referencesGoods(Gnum),
foreignkey(Bnum)referencesBillSell(Bnum)
createtableReturnGoods(
Rnumchar(10)primarykey,
Gnumchar(10)foreignkeyreferencesGoods(Gnum),
Rquantitysmallint
createtablePrintBill(
Rnumchar(10),
Snumchar(10),
Rdatasmalldatetime,
primarykey(Bnum,Rnum,Snum),
foreignkey(Bnum)referencesBillSell(Bnum),
foreignkey(Rnum)referencesReturnGoods(Rnum),
foreignkey(Snum)referencesShopAssistant(Snum)
3、创建索引
其相应SQL语句为:
createclusteredindexdex_SnumonShopAssistant(Snum);
createclusteredindexdex_MunmonMember(Mnum);
createuniqueindexdex_AnumonAdministrator(Anumdesc);
createuniqueindexdex_GSnumonGoodsShelf(GSnum);
createuniqueindexdex_GnumonGoods(Gnum);
4、创建视图
相应SQL语句为:
createviewV_Salesman
as
selectSnum,Swtime,Sctime,Ssalaary,Sphone
fromShopAssistant
createviewV_member
as
selectMnum,Mname,Mexpense
fromMember
createviewV_GoodsPrice
selectGname,Gprice
fromGoods
createviewV_GoodsStore
selectGname,GSname
fromGoods,GoodsShelf
whereGoods.GSnum=GoodsShelf.GSnum
createviewV_GoodsLack
selectGname,GSstock,GSlimit
whereGSstock<
=GSlimit
createviewV_GoodsShelf
selectGSname,Gname
fromGoodsShelf,Goods
whereGoodsShelf.GSnum=Goods.GSnum
createviewV_Work
selectShopAssistant.Swtime,ShopAssistant.Sname,Administrator.Aname
fromShopAssistant,Administrator
whereShopAssistant.Swtime=Administrator.Awtime
createviewV_Phone(name,num,phone)
(selectSname,Snum,Sphone
fromShopAssistant)
union
(selectAname,Anum,Aphone
fromAdministrator)
createviewV_Salary(name,num,salary)
(selectSname,Snum,Ssalaary
(selectAname,Anum,Asalary
createviewV_GoodsEnd
selectGname,Gproducetime,Gtime,DateAdd(DAY,Gtime,Gproducetime)EndTime
createviewV_GoodsUnload
selectGname,GoodsShelf.GSname,DateAdd(DAY,Gtime,Gproducetime)EndTime
whereDateAdd(DAY,Gtime,Gproducetime)<
=GETDATE()
andGoods.GSnum=GoodsShelf.GSnum
createviewv_BillExpense
selectBnum,Gname,Gprice,Bquantity,(Bquantity*Gprice)TotalExpense
fromSellGoods,Goods
whereSellGoods.Gnum=Goods.Gnum
5、创建触发器
(1)当打印一张销售发票时,即删除数据库中刚建立的销售发票时,相应商品在货架上的现有存量减少,相应会员总消费额增加。
createtriggert1onv_BillExpense
INSTEADOFdelete
declare@Quantityint,
@Gnamechar(10),
@TotalExpensefloat
--@Bnumchar(10)
select@Quantity=Bquantityfromdeleted
select@Gname=Gnamefromdeleted
--select@TotalExpense=TotalExpensefromdeleted
--select@Bnum=Bnumfromdeleted
updateGoods
setGSstock=GSstock-@Quantity
whereGoods.Gname=@Gname
--updateMember
--setMexpense=Mexpense+@TotalExpense
--where@Bnum=SellBill.Bnum
--andSellBill.Mnum=Mnum
(2)当从过期商品名单中删除某记录时,相应商品现有存量减少.
createtriggert2onV_GoodsUnload
declare@Gnamechar(10)
deletefromGoods
whereGname=@Gname
(3)打印一张退货发票,即删除退货单中的记录,表示R商品重新返回原货架存储(假设脱货商品不影响第二次销售),货架商品现有存量增加.
createtriggert3onReturnGoods
afterdelete
declare@Gnumchar(10),
@Rquantityint
select@Gnum=Gnumfromdeleted
select@Rquantityfromdeleted
setGSstock=GSstock+@Rquantity
whereGnum=@Gnum
6、建立储存过程
(1)计算某个销售单上,每种商品的累计销售额(即输出每种商品名称,件数,单价,费用小计)。
createprocedurep_TotalExpense
(@BS_Bnumvarchar,
@Bnumvarcharoutput,
@Gnamevarcharoutput,
@Bquantityintoutput,
@Gpricenumericoutput,
@TotalExpensenumericoutput)
select@Bnum=Bnum,@Gname=Gname,@Bquantity=Bquantity,@Gprice=Gprice,@TotalExpense=(Bquantity*Gprice)
fromv_BillExpense
whereBnum=@BS_Bnum
其验证语句为:
Declare
@T_Bnumvarchar,
@T_Gnamevarchar,
@T_Bquantityint,
@T_Gpricevarchar,
@T_TotalExpensevarchar
Executep_TotalExpense'
GS-0000004'
@T_Bnumoutput,@T_Gnameoutput,@T_Bquantityoutput,@T_Gpriceoutput,@T_TotalExpenseoutput
Print@T_Bnum+'
'
+@T_Gname+'
+@T_Bquantity+'
+@T_Gprice+'
+@T_TotalExpense
(2)计算某个销售单上,顾客消费商品总数量和总消费额。
createprocedurep_BillExpense
@BS_Bnumvarchar
selectBnum,sum(Bquantity)TotalQuantity,sum(TotalExpense)TotalExpense
groupbyBnum
havingBnum=@BS_Bnum
(3)查询某件商品价格。
createprocedurep_price
@Gnamechar(10)
selectGprice
fromV_GoodsPrice
(4)查询某件商品现有数量。
createprocedurep_Gquantity
selectGSstock
(5)查询强制下架商品名单中商品名称和过期日期。
createprocedurep_GoodsUnload
selectGname商品名,EndTime过期日期
fromV_GoodsUnload
(6)生成缺货单。
createprocedurep_GoodsLack
selectv_GoodsLack.Gname商品名,v_GoodsLack.GSstock现有存量,GSname货架名
fromV_GoodsLack,Goods,GoodsShelf
whereV_GoodsLack.Gname=Goods.GnameandGoods.GSnum=GoodsShelf.GSnum
(7)查询指定某个月内的销售情况。
createprocedurep_RankingList
@A_monthdate=getdate
selectGname,Bquantity,TotalExpense
fromv_BillExpense,BillSell
wherev_BillExpense.Bnum=BillSell.Bnum
andDATEPART(YEAR,@A_month)=DATEPART(YEAR,BillSell.Bdate)
andDATEPART(MONTH,@A_month)=DATEPART(MONTH,BillSell.Bdate)
Executep_RankingList@A_month='
2010-5-1018:
18'
;
(8)查询指定工作人员的工资。
createprocedurep_SalesmanSalary
@s_Snumchar(10)
selectSsalaary
fromV_Salesman
whereSnum=@s_Snum
(9)在某段时间内的上班人员名单。
createprocedurep_TimeWork
@T_timechar(10)
select*
fromV_Work
whereSwtime=@T_time
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 销售 数据库