商店进销存管理系统数据库设计
商店进销存管理系统
数据库设计说明书
拟制人 吴静 杜茂坤
审核人
批准人______________________
【2013年1月18日星期五】
数据库设计说明书
1. 引言
1.1编写目的
随着计算机技术的高速发展,人们对计算机的依赖性越来越强,特别是用计算机开发的数据库以及数据管理系统在生活应用中表现得更为突出。随着超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。 作为国内市场的一些中小型商店,它们在信息化过程中的步伐要落后于大型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法。因此,针对中小型商店开发一个商店进销存管理系统是非常必要的。
通过使用商店进销存管理系统,使商店的管理工作系统化、规范化、自动化、简易化、智能化,从而达到提高超市进销存管理效率的目的。商店进销存管理系统其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强,数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。系统实现了商品信息管理,商品进货操作,商品出货操作,库存信息查询等功能。本文详细地介绍了软件的开发环境、数据库的设计、各个模块的设计和实现及具体界面的设计和功能。
1.2背景
a. 待开发软件系统的名称: 商店进销存管理系统 b. 本项目的任务提出者: 石河子大学 c. 本项目开发者: 吴静,杜茂坤 d. 本项目用户: 商店员工
1.3 参考资料
[1] Mark Priestley.面向对象设计uml 实践 [M].龚晓庆,卞雷等译. 北京:清
华大学出版社,2005.
[2] 郑人杰,马素霞,殷人昆. 软件工程概论 [M].北京:机械工业出版社,2011. [3] 王珊,萨师煊. 数据库系统概论概论 [M].北京:高等教育出版社,2005. [4] 卢瀚,王春斌.java web 开发实战1200例[M].北京:清华大学出版社,2011.
2. 结构设计
2.1 界面设计
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成进货、销售、库存管理的全过程。
系统的登录界面如图2.1。
图2.1系统登陆界面
系统首页如图2.2所示。
图2.2系统首页
商品添加页面如图2.3所示。
图2.3商品添加页面
商品查询界面如图2.4所示。
图2.4商品查询界面
密码修改界面如图2.5所示。
图2.5密码修改界面
2.2 逻辑结构设计 (1)局部E-R 图
商品及商品属性之间存在属于的关系,如图2.6所示。
图2.6
商品、供应商及之间存在着供应入库的关系,E-R 图如图2.7所示。
图2.7
商品和仓库之间存在图2.8所示关系。
图2.8
商品和顾客之间存在销售的关系,如图2.9所示。
图2.9
(2)全局E-R 图
图2.10
2.3关系模型设计
商品类型(类型号, 类型名,说明)
商品(商品号,商品名,类型号,单价,单位,规格,说明)
供应商(供应商号,供应商全称,地址,联系人,电话,电子邮箱,开户银行,开户账号)
顾客(顾客号,顾客全称,地址,联系人,电话,电子邮箱,开户银行,开户账号)
业务员(业务员号,工资,登陆名,密码) 仓库(仓库号,面积,单位)
入库单(供应单号,供应商号,业务员号,应付,实付,未付,是否付清,日期)
入库详单(商品号,仓库号,供应单号,数量,金额)
销售单(流水号,业务员,应收,实收,未收,是否结清,销售日期) 销售详单(商品号,流水号,数量,金额)
转仓详单(转仓单号,商品号,转出仓库,转入仓库) 库存(仓库号,商品号,库存量)
2.4 关系图
(1) 入库管理关系图
图2.11
(2)销售管理关系图
.
图2.12
(3)转仓关系图
图2.13
2.5物理结构设计
表2-1 splb(商品类别)
表2-2 tb_brand(商品)
表2-3 tb_ck(仓库)
表2-5 tb_customer(顾客)
表2-10 tb_sell(销售详单)
3 存储过程脚本
(1)创建存储过程统计指定时间段内各种商品的进货数量
create proc pro_rksl
@starttime datetime , @endtime datetime , @spid varchar (20), @totalsl int output , @totalje money output as
select @totalsl=sum (sl ), @totalje=sum (je ) from tb_ruku, tb_rkd where tb_rkd. ID =tb_ruku. rkd and rkdate between @starttime and @endtime group by spid having spid=@spid
(2)创建存储过程统计指定时间段内各种商品的销售数量
create proc pro_xssl
@starttime datetime , @endtime datetime , @spid varchar (20), @totalsl int output , @totalje money output as
select @totalsl=sum (sl ), @totalje=sum (je ) from tb_sell, tb_selld where tb_selld. ID =tb_sell. selld and xsdate between @starttime and @endtime group by spid having spid=@spid
4 触发器脚本
(1)当商品入库时自动增加该商品的库存量
create trigger tri_sprk
on tb_ruku for insert
as declare @oldsl int , @oldje money , @spid varchar (20), @ckid int , @ckid1 select @ckid1=0
select @spid=spid , @ckid=ckid , @rksl=sl , @rkje=je from inserted select @ckid1=ckid from tb_kucun where spid=@spid if @rksl>0 begin
if @ckid=@ckid1
int , @rksl int , @rkje money
begin
update tb_kucun set kcsl=@oldsl+@rksl, kcje =@oldje+@rkje where return end
if @ckid1=0 begin
insert into tb_kucun values (@spid, @ckid, @rksl, @rkje) return end
spid =@spid
end
rollback transaction
(2)当商品销售时自动修改各仓库的库存量
create trigger tri_spxs
on tb_sell for insert
as declare @oldsl int , @spid varchar (11), @xssl int , @oldje money , @xsje select @spid=spid , @xssl=sl , @xsje=je from inserted
select @oldsl=kcsl , @oldje=kcje from tb_kucun where spid=@spid if @xssl>0 and @oldsl>@xssl begin
update tb_kucun set kcsl=@oldsl-@xssl, kcje =@oldje-@xsje where return
money
spid =@spid
end
rollback transaction
(3)当商品转仓时自动修改各仓库的库存量
create trigger tri_spzc
on tb_zc for insert
as declare @kcsl int , @kcje money , @zcck int , @zrck int , @spid select @spid=spid , @zcck=zcck , @zrck=zrck from inserted
select @kcsl=kcsl , @kcje=kcje from tb_kucun where spid=@spid and
varchar (20)
ckid =@zcck if @kcsl>0
begin
delete from tb_kucun where spid=@spid and ckid=@zcck return
insert into tb_kucun values (@spid, @zrck, @kcsl, @kcje)
rollback transaction
5 数据库恢复与备份
(1)数据库的完全备份
backup database db_shopping
to disk ='E:\备份数据库\fullback_shop' with init
(2)数据库的恢复
restore database db_shopping
from disk ='E:\备份数据库\fullback_shop' with replace
(3)数据库差异备份
backup database db_shopping
to disk ='E:\备份数据库\defback_shop' with differential
(4)数据库的恢复
restore database db_shopping
from disk ='E:\备份数据库\defback_shop' with replace