零售商日常管理系统.docx

上传人:b****4 文档编号:11924915 上传时间:2023-04-16 格式:DOCX 页数:28 大小:633.99KB
下载 相关 举报
零售商日常管理系统.docx_第1页
第1页 / 共28页
零售商日常管理系统.docx_第2页
第2页 / 共28页
零售商日常管理系统.docx_第3页
第3页 / 共28页
零售商日常管理系统.docx_第4页
第4页 / 共28页
零售商日常管理系统.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

零售商日常管理系统.docx

《零售商日常管理系统.docx》由会员分享,可在线阅读,更多相关《零售商日常管理系统.docx(28页珍藏版)》请在冰豆网上搜索。

零售商日常管理系统.docx

零售商日常管理系统

《数据库实训项目报告》

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)大量网络参考文献.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1