零售商日常管理系统.docx
- 文档编号:11924915
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:28
- 大小:633.99KB
零售商日常管理系统.docx
《零售商日常管理系统.docx》由会员分享,可在线阅读,更多相关《零售商日常管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
零售商日常管理系统
《数据库实训项目报告》
SQL零售商日常管理系统
系名称:
计算机系
专业名称:
软件工程
班号:
姓名:
指导教师:
2011年6月13日
SQL零售商日常管理系统
概要
零售商经营模式已经成为了目前最普遍的经营模式,随着零售业的高速发展,其经营管理变得日益复杂,日常所需处理的数据量渐渐庞大,商业运转的中间环节也越来越多,以前主要依靠人工管理的方法显然已无法适应零售规模的不断扩大,零售商日常管理系统将提高私营户各项工作的效率和质量,促使商品的销售和资金的流转;减轻各类事务性工作的劳动强度,使管理和销售的职员腾出更多的精力和时间来服务于顾客,改善经营管理,堵塞漏洞,保证顾客和经营户的经济效益。
让消费者少付金钱,时间,精力和风险,而获得更好的品质的服务。
第一章引言
1.1需求分析
通过需求分析可以从用户那里获取项目的基本信息和要求
(1)要求系统对库存情况进行管理,也就是对商品买卖情况进行统计,以便随时可掌握商品的流通情况。
(2)要求系统对销售情况进行管理,对于热销的商品,和存货量不足的商品,可以给予及时的反应。
(3)要求系统对收支情况进行管理,对于销售的商品可以自动记账,对于超过一定额度的资金可以自动转入银行账户,对于进货可以自动在银行账户上减少相应资金。
(4)要求系统能进行进货管理,对供应商以及所进的商品进行管理,并对进货所需的资金进行进货查询管理,可以跟据供货商查看其所供应的所有货物及价格。
(5)要求系统能进行销售管理,当遇到打折等情况时对商品价格的管理。
(6)要求系统对员工情况进行管理,包括员工工资的发放,减少银行账户的资金。
(7)要求系统对员工情况进行管理,包含员工的增减,和工资的关系。
(8)应保留商品的历史信息,以备日后查询。
(9)系统运行在Windows平台上,系统还应该有一个较好的图形用户界面。
(10)应该可以对系统的基础数据进行维护,系统应该有很好的可扩展性。
1.2系统配置
系统配置就是为数据库项目系统配置一个相对最优的系统配置方案,根据用户的实际情况进行设计,主要依据是系统的吞吐量,系统对稳定性的要求和用户的维护水平.
(1)软件配置:
本设计主要针对小型一点的用户,由于他们的商品数据量小,对数据库要求低,因此采用SQL数据库系统是最佳选择,并选择WindowsXP操作系统。
(2)硬件配置:
用户为小型零售商使用,稳定性要求中等,维护水平一般,系统硬件选用个人计算机.
1.3开发工具的选用及介绍
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
第二章整体设计
2.1系统功能分析
零售商日常管理系统总体功能的设计采用自顶向下,从抽象到具体的规范方法。
遵循“高内聚低耦合”原则,依照功能将复杂系统划分为相对独立模块,如图所示:
2.2系统功能模块设计
零售商日常管理系统主要包括商品管理,资金管理,员工管理,进退货管理等功能模块。
(1)商品管理
即对商品进行管理,分别为仓库商品,上架商品,销售商品的管理。
资金管理
(2)即对进货和销售的资金,银行账户存款及日常开销(包括水电费,员工开销等)
(3)员工管理
即对员工的信息管理,员工的工资等。
(4)进退货管理
即对供应商信息的管理,及进货和退货,和供应产品的管理。
(5)设置修改
该模块主要实现对商品的入库,出库以及销售等信息的设置进行修改的功能。
2.2总数据流图
2.3E-R图
第三章数据库设计
在零售商日常管理系统中,数据库设计占有重要位置,数据库设计质量的优劣,可直接影响到数据库数据的冗余度、数据的一致性、数据丢失等问题。
下面对本系统的数据库逻辑结构和物理结构设计进行说明。
3.1逻辑结构设计
根据系统功能设计的要求以及功能模块的划分,对零售商日常管理系统可以列出以下数据项及数据结构:
(1)上架商品的基本信息:
包括商品的编号,名称,剩余数量,销售单价,打折情况,打折后价格。
(2)仓库商品基本信息:
商品编号,名称,进货价格,月统计销售量,剩余。
(3)销售货物量统计:
上半年销售量,下半年销售量,年销售量,商品名称,商品编号。
(4)退货的信息:
退货货物编号,名称,单品价格,数量,总价,退货人。
(5)资金的统计信息:
年收入,人员开支,其他费用,银行账户。
(6)供货商基本信息:
进货商编号,公司,货物,价格,联系人,电话,地址。
(7)员工信息:
包括员工的编号,名称,基本工资,分红,总工资,电话,地址。
3.2物理结构设计
根据系统需求及逻辑结构设计,表结构如下:
第四章系统实现
建表:
(1)创建零售商日常管理系统数据库
CREATEDATABASE零售商日常管理系统
(2)CREATETABLE上架商品
(商品编号CHAR(8)PRIMARYKEY,
商品名称CHAR(8)NOTNULL,
打折情况SMALLMONEYNOTNULL,
剩余数量INTNOTNULL,
打折情况floatNOTNULL,
打折后单价=打折情况*打折情况SMALLMONEY,
)
(3)CREATETABLE仓库
(商品编号CHAR(8)PRIMARYKEY,
商品名称CHAR(8)NOTNULL,
进货价格SMALLMONEYNOTNULL,
月统计销售量INT,
剩余存货INT,
)
(4)CREATETABLE销售货物量统计
(商品编号CHAR(8)PRIMARYKEY,
商品名称CHAR(8)NOTNULL,
年销售量INT,)
(5)CREATETABLE退货
(商品编号CHAR(8)PRIMARYKEY,
商品名称CHAR(8)NOTNULL,
商品单价SMALLMONEYNOTNULL,
数量int,
总价SMALLMONEYNOTNULL,
退货人CHAR(8)NOTNULL,
)
(6)CREATETABLE资金的统计
(
年收入SMALLMONEYNOTNULL,
人员开支SMALLMONEYNOTNULL,
其他费用SMALLMONEYNOTNULL,
银行账户SMALLMONEYNOTNULLPRIMARYKEY,
备注CHAR(8),
)
(7)CREATETABLE供货商基本信息
(
供应商编号CHAR(8)PRIMARYKEY,
公司CHAR(50)NOTNULL,
货物名称CHAR(8)NOTNULL,
销售单价SMALLMONEYNOTNULL,
联系人CHAR(8)NOTNULL,
电话int,
地址CHAR(8)NOTNULL,
备注CHAR(8),
)
(8)CREATETABLE员工信息
(
员工编号CHAR(8)PRIMARYKEY,
员工名称CHAR(8)NOTNULL,
基本工资SMALLMONEYNOTNULL,
分红SMALLMONEY,
总工资SMALLMONEYNOTNULL,
电话intNOTNULL,
地址CHAR(8)NOTNULL,
备注CHAR(8),
)
视图:
(1)上架商品信息查询视图
CREATEVIEW上架货物查询
AS
SELECT商品编号,商品名称,剩余数量
FROM上架商品
(2)仓库商品库存信息查询视图
CREATEVIEW仓库货物查询
AS
SELECT商品编号,商品名称,剩余存货
FROM仓库
(3)供货商信息查询视图
CREATEVIEW供货商信息查询
AS
SELECT供应商编号,公司,货物名称,供应单价,联系人,电话,地址
FROM供货商基本信息
(4)员工信息查询视图
CREATEVIEW员工信息查询
AS
SELECT*
FROM员工信息
(5)销售货物量统计信息查询视图
CREATEVIEW销售货物量统计信息查询
AS
SELECT商品编号,商品名称,年销售量
FROM销售货物量统计
(6)现使用的供货商信息查询视图
CREATEVIEW现使用的供货商信息查询
AS
SELECT商品编号,商品名称,供应单价,公司,联系人,电话
FROM供货商基本信息,仓库
WHERE货物名称=商品名称AND进货价格=供应单价
存储过程:
(1)插入供货商信息
CREATEPROCEDURE插入供货商信息
(@供应商编号CHAR(8),
@公司CHAR(8),
@货物名称CHAR(8),
@供应单价smallmoney,
@联系人CHAR(8),
@电话INT,
@地址CHAR(8),
@备注char(8)
)
AS
INSERTINTO供货商基本信息VALUES(@供应商编号,@公司,@货物名称,@供应单价,@联系人,@电话,@地址,@备注)
exec插入供货商信息'011','月亮有限集团','棒棒糖',1,'月亮S','856328','月球村','存储过程'
(2)插入员工信息
CREATEPROCEDURE插入员工信息
(@员工编号CHAR(8),
@员工名称CHAR(8),
@基本工资smallmoney,
@分红smallmoney,
@月业绩CHAR(8),
@总工资smallmoney,
@电话int,
@地址char(8),
@备注char(20)
)
AS
INSERTINTO员工信息VALUES(@员工编号,@员工名称,@基本工资,@分红,@月业绩,@总工资,@电话,@地址,@备注)
exec插入员工信息'003','进口D',800,0,100,900,'753586','月球村','存储过程'
(3)插入退货信息
CREATEPROCEDURE插入退货信息
(@商品编号CHAR(8),
@商品名称CHAR(8),
@商品单价smallmoney,
@数量int,
@总价smallmoney,
@退货人char(8)
)
AS
INSERTINTO退货VALUES(@商品编号,@商品名称,@商品单价,@数量,@总价,@退货人)
exec插入退货信息'004','汽水',2,'50',100,小M
(4)插入新增商品仓库信息
CREATEPROCEDURE插入仓库货物信息
(@商品编号CHAR(8),
@商品名称CHAR(8),
@进货价格smallmoney,
@月统计量int,
@剩余存货int
)
AS
INSERTINTO仓库VALUES(@商品编号,@商品名称,@进货价格,@月统计量,@剩余存货)
exec插入仓库货物信息'006','棉花糖',2,'','100'
(5)更新供货商信息
CREATEPROCEDURE修改供货商信息
(@供应商编号char(8),
@货物名称CHAR(8),
@供应单价smallmoney,
@联系人CHAR(8),
@电话INT,
@备注char(8)
)
AS
UPDATE供货商基本信息
SET货物名称=@货物名称,供应单价=@供应单价,联系人=@联系人,电话=@电话,备注=@备注
WHERE供应商编号=@供应商编号
exec修改供货商信息'004','洋葱圈',2,'方法F','852459','过程修改
(6)更新员工基本信息
CREATEPROCEDURE修改员工信息
(@员工编号char(8),
@基本工资smallmoney,
@分红smallmoney,
@总工资smallmoney,
@电话INT,
@备注char(8)
)
AS
UPDATE员工信息
SET基本工资=@基本工资,分红=@分红,总工资=@总工资,电话=@电话,备注=@备注
WHERE员工编号=@员工编号
exec修改员工信息'111',1100,0,1100,'852459','过程修改''
(7)更新上架商品价格信息
CREATEPROCEDURE修改上架商品价格信息
(@商品编号char(8),
@销售单价smallmoney,
@剩余数量int,
@打折情况float,
@打折后单价smallmoney
)
AS
UPDATE上架商品
SET销售单价=@销售单价,剩余数量=@剩余数量,打折情况=@打折情况,打折后单价=@打折后单价
WHERE商品编号=@商品编号
exec修改上架商品价格信息'001',12,'50','0.85',10.2
触发器:
1.为了确保在上架商品表中的商品的多少不变,可以随时从仓库中补充所以每当上架商品存货量减少,仓库自动补充,因此建立触发器:
CREATETRIGGER仓库商品减少触发
ON上架商品
FORUPDATE
AS
DECLARE@no1int,@no2int,@no3char(8)
select@no1=剩余数量,@no3=商品编号fromdeleted
select@no2=剩余数量frominserted
UPDATE仓库
SET剩余存货=剩余存货-(@no1-@no2)
WHERE商品编号=@no3
Go
UPDATE上架商品
SET剩余数量=剩余数量+@no1
WHERE商品编号=@no3
2.为了确保仓库的始终有剩余商品,所以当仓库中商品剩余少于一定数值,自动与销售上联系,购买产品入库,并从银行账户中支付金额,因此建立触发器:
CREATETRIGGER仓库减少到一定程度增加触发器
ON仓库
FORUPDATE
AS
DECLARE@no1int,@no2int,@no3char(8)
select@no3=商品编号fromdeleted
select@no2=剩余存货frominserted
select@no1=进货价格frominserted
UPDATE仓库
SET剩余存货=100
WHERE商品编号=@no3and剩余存货<11
UPDATE资金的统计
SET银行账户=银行账户-90*@no1
3.为了统计销售情况,每当卖出一件货物是自动在统计表中相应商品销售额中+1,因此建立触发器:
CREATETRIGGER卖货统计触发器
ON上架商品
FORUPDATE
AS
DECLARE@no3char(8),@no4int,@no5int
select@no3=商品编号fromdeleted
select@no5=剩余数量frominserted
UPDATE销售货物量统计
SET年销售量=年销售量+(10-@no5)
WHERE商品编号=@no3
4..为了统计销售情况,每当卖出一件货物自动在仓库月统计中相应商品销售额中+1,因此建立触发器:
CREATETRIGGER卖货月统计触发器
ON上架商品
FORUPDATE
AS
DECLARE@no3char(8),@no4int,@no6int
select@no3=商品编号fromdeleted
select@no6=剩余数量frominserted
UPDATE仓库
SET月统计销售量=月统计销售量+(10-@no6)
WHERE商品编号=@no3
5.为了统计销售的金额,每当卖出一件商品自动在销售表中用卖出数量乘以销售价格,得出的销售金额写入年销售,因此建立触发器:
CREATETRIGGER商品减少资金增加触发
ON上架商品
FORUPDATE
AS
DECLARE@no2int,@no3char(8),@no4smallmoney
select@no3=商品编号fromdeleted
select@no2=剩余数量frominserted
select@no4=打折后单价frominserted
UPDATE资金的统计
SET年收入=年收入+(10-@no2)*@no4
6.为了方便统计,当资金增加到一定数值时自动存入银行,因此建立触发器:
CREATETRIGGER年收入增加到一定程度存入银行触发器
ON资金的统计
FORUPDATE
AS
DECLARE@no1int,@no2int,@no3char(8),@no4smallmoney,@no5smallmoney
select@no2=年收入frominserted
select@no4=其他费用frominserted
select@no5=人员开支frominserted
UPDATE资金的统计
SET银行账户=银行账户+(@no2-@no4-@no5)
WHERE年收入>30000
UPDATE资金的统计
SET年收入=0
WHERE年收入>30000
7.为了统计,当退货事件发生时自动存入年收入中,因此建立触发器:
CREATETRIGGER退货资金增加触发器
ON退货
FORUPDATE
AS
DECLARE@no1int,@no2smallmoney,@no3char(8)
select@no3=商品编号fromdeleted
select@no2=商品单价frominserted
select@no1=数量frominserted
UPDATE退货
SET总价=@no1*@no2
WHERE商品编号=@no3
UPDATE资金的统计
SET年收入=年收入+@no1*@no2
7.为了使打折后单价=销售单价*打折情况,因此建立触发器。
CREATETRIGGER打折后商品价格触发
ON上架商品
FORUPDATE
AS
DECLARE@no1int,@no2smallmoney,@no3float
select@no3=商品编号fromdeleted
select@no2=销售单价frominserted
select@no1=打折情况frominserted
UPDATE上架商品
SET打折后单价=@no1*@no2
WHERE商品编号=@no3
五.系统测试
1.退货测试:
2.资金增加到一定数值时自动存入银行测试:
3.商品自动销售金额增加测试:
4.卖出一件货物自动在仓库月统计中相应商品销售额中+1测试:
5.卖出一件货物是自动在统计表中相应商品销售额中+1测试:
6.仓库中商品少自动购买,资金减少测试:
7.上架商品不变,仓库补充测试:
8.部分存储过程测试已经随建立时测试。
第六章总结
本设计已经实现
(1)对库存情况进行管理,也就是对商品买卖情况进行统计,可以随时掌握商品的流通情况。
(2)对销售情况进行管理,对于热销的商品,和存货量不足的商品,可以给予及时的回应
(3)对收支情况进行管理,对于销售的商品可以自动记账,对于超过一定额度的资金可以自动转入银行账户,对于进货可以自动在银行账户上减少相应资金。
(4)要求系统能进行进货管理,对供应商以及所进的商品进行管理,并对进货所需的资金进行进货查询管理,可以跟据供货商查看其所供应的所有货物及价格。
(5)要求系统能进行销售管理,当遇到打折等情况时对商品价格的管理。
(6)要求系统对员工情况进行管理,包括员工工资的发放,减少银行账户的资金。
由于时间紧,任务重,所以还有好多功能还有待于以后去实现。
结束语
一个学期的数据库设计已接近尾声了,零售商日常管理系统也基本上完成了,虽然有许多不足的地方,但也有许多值得自己骄傲的地方,毕竟自己从来都没有开发过系统,在这次系统的开发过程中学到了好多知识,更加熟练地掌握了SQL数据库,锻炼了我的项目开发能力,使我对软件工程的知识有了更深刻的理解、更贴切的感受。
在这过程中有许多顺利的时候,也有过不顺利的时候,有时,一个问题能一连几个星期都解决不了,然后就和我就找同学讨论,实在讨论不出来,就到图书馆、上网查资料,有时候,资料都查不到,然后靠自己摸索,请我的指导老师崔岩老师帮忙讲解,最终会柳暗花明又一村的。
通过一个短短的三周的实习和设计,磨炼了自己的耐心,培养了自己查资料和同学讨论的好习惯,这些对即将走上工作岗位的我是有很大的帮助的,相信我以后工作时在这些方面会做的更好。
同时,我也发现和同学讨论会增强自己的记忆,但这次设计还是有许多不足之处,如编程的能力,分析问题的能力不够强等,这些都有待今后进一步加强、
、改进、完善。
致谢
在本次设计中,曾遇到过不少问题,如果单靠我个人的努力,很难按时完成毕业设计,在此,我衷心感谢我的指导老师。
他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。
他无论在理论上还是在实践中,都给与我无私帮助和悉心的教导,使我的设计得以顺利地按时完成。
另外非常感谢许多关心和帮助我的老师和同学,使我有了更多的机会去研究、开发课题,帮助我完善了本设计中的触发器等过程,在此我对他们表示感谢
论文的的完成也随之进入了尾声。
从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我再一次诚挚的谢意!
在此,谨向导师表示崇高的敬意和衷心的感谢!
参考文献:
(1)张海藩《软件工程导论》第五版清华大学出版社
(2)王珊、萨师煊《数据库系统概论》第四版高等教育出版社
(3)大量网络参考文献.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 零售商 日常 管理 系统