库存管理系统项目设计方案书书.docx
《库存管理系统项目设计方案书书.docx》由会员分享,可在线阅读,更多相关《库存管理系统项目设计方案书书.docx(15页珍藏版)》请在冰豆网上搜索。
库存管理系统项目设计方案书书
1工程概述
库存管理是企业日常经营管理中十分重要的组成部分,传统的手工管理方式弊端很多,入库、统计、汇总处理时的工作量极其繁重,处理效率非常低,领导也无法及时了解企业资金占用的实际状况。
起来越多的企业经营者意识到,只有采用信息化的管理系统,才能适应日益激烈的市场竞争。
2系统分析
库存管理系统是生产、计划和控制的基础。
库存管理系统主要通过对仓库、入库、出库的管理,及时反映物资的仓储、流向情况,为生产管理和成本核算提供依据。
并通过库存分析,为管理及决策人员提供库存资金占用情况、物资短缺情况等不同的分析信息。
同时为计划及决策人员提供实时准确的存货信息,以便及时调整生产,保证企业各项生产经营活动的顺利进行。
通过库存管理理信息化,可以全面监控企业商品的进、出、存等各种状况,满足现代企业的库存管理需要。
通过实际调查,要求本系统具有以下功能:
(1)具有良好的人机界面;
(2)有较好的权限管理;
(3)方便的数据查询;
(4)批量货物入库单及出库单;
(5)使用饼图分析年、月货物出入库情况;
(6)在相应的权限下,可方便地删除数据;
(7)数据计算自动完成,尽量减少人工干预。
3总体设计
3.1工程规划
库存管理系统主要由基本档案、货物管理、查询统计、系统维护和帮助等模块组成,具体规划如下:
●基本档案模块
主要用于实现货物档案设置、供应商设置和仓库设置等功能。
●货物管理模块
主要用于实现货物的入库管理、出库管理、借货管理、还货管理和盘点管理等功能。
●查询统计模块
主要用于实现货物的库存查询、入库查询、借出查询、归还查询、警戒查询和出入库货物的年统计、月统计等功能。
●系统维护模块
主要用于实现数据的备份、还原和压缩功能。
●帮助模块
主要用于实现用户管理、更改密码、权限设置、关于本系统、重新登录和退出系统等功能。
3.2系统业务流程分析
库存管理系统的业务流程如图1所示。
3.3系统功能结构
库存管理系统的功能结构如图2所示。
4系统设计
4.1设计目标
本系统属于小型的数据库管理系统,可以对中小型企业库存进行有效地管理。
通过本系统可以达到以下目标:
●灵活的批量录入数据,使信息传递快捷。
●系统采用人机交互方式,界面美观友好,信息查询灵活方便,数据存储安全可靠。
●实施强大的后台监控功能。
●功能强大的出入库分析。
●实现各种查询,如定位查询、模糊查询等。
●实现货物进货分析与统计、货物出库明细记录等功能。
●对用户输入的数据,系统进行严格的数据检验,尽可能避免人为错误。
●系统最大限度地实现了易安装性、易维护性和易操作性。
4.2数据库设计
本系统采用SQL Server2000作为后台数据库,数据库名称为db_SMS,其中包含了9张数据表。
下面分别介绍。
4.2.1数据表E-R图
根据上面的设计,规划出的实体主要有:
货物信息实体、货物入库实体、货物出库实体、货物借出实体和货物归还实体等。
库存管理系统主要实体间关系E-R图如图4所示,货物信息实体E-R图如图5所示。
货物入库实体E-R图如图6所示,货物出库实体E-R图如图7所示。
货物借出实体E-R图如图8所示,货物归还实体E-R图如图9所示。
4.2.2主要数据表的结构
tb_User用户信息表
字段名
数据类型
长度
主键
描述
UserID
bigint
8
主键
用户编号
UserName
varchar
20
否
用户名称
UserPwd
varchar
20
否
用户密码
UserRight
char
10
否
用户权限
tb_BorrowGoods借出货物表
字段名
数据类型
长度
主键
描述
BGID
bigint
8
主键
借货编号
GoodsName
varchar
50
否
货物名称
StoreName
varchar
100
否
仓库名称
GoodsSpec
varchar
50
否
货物规格
GoodsNum
bigint
8
否
借货数量
BGDate
datetime
8
否
借货日期
HandlePeople
varchar
20
否
经手人
BGPeople
varchar
20
否
借货人
BGUnit
varchar
100
否
借货单位
BGRemark
varchar
1000
否
备注
tb_Provider供货商信息表
字段名
数据类型
长度
主键
描述
PrID
bigint
8
主键
供货商编号
PrName
varchar
100
否
供货商名称
PrPeople
varchar
20
否
供货商联系人
PrPhone
varchar
20
否
供货商电话
PrFax
varchar
20
否
供货商传真
PrRemark
varchar
1000
否
供货商备注
Editer
varchar
20
否
记录修改人
EditDate
datetime
8
否
修改日期
tb_Check盘点信息表
字段名
数据类型
长度
主键
描述
CheckID
bigint
8
主键
盘点编号
GoodsID
bigint
8
否
货物编号
StoreName
varchar
100
否
仓库名称
GoodsName
varchar
50
否
货物名称
GoodsUnit
char
8
否
计量单位
CheckNum
bigint
8
否
盘点数量
PALNum
bigint
8
否
盈亏数量
CheckDate
datetime
8
否
盘点日期
CheckPeople
varchar
20
否
盘点人
CheckRemark
varchar
1000
否
盘点备注
Editer
varchar
20
否
记录修改人
EditDate
datetime
8
否
修改日期
tb_GoodsInfo货物信息表
字段名
数据类型
长度
主键
描述
GoodsID
bigint
8
否
货物编号
GoodsName
varchar
50
否
货物名称
StoreName
varchar
100
否
仓库名称
GoodsSpec
varchar
50
否
货物规格
GoodsUnit
char
8
否
计量单位
GoodsNum
bigint
8
否
货物数量
GoodsInPrice
money
8
否
货物入库价格
GoodsOutPrice
money
8
否
货物出库价格
GoodsLeast
bigint
8
否
货物底线存储
GoodsMost
bigint
8
否
货物顶线存储
Editer
varchar
20
否
记录修改人
EditDate
datetime
8
否
修改日期
tb_InStore货物入库表
字段名
数据类型
长度
主键
描述
ISID
bigint
8
主键
入库编号
GoodsID
bigint
8
否
货物编号
GoodsName
varchar
50
否
货物名称
PrName
varchar
100
否
供应商名称
StoreName
varchar
100
否
仓库名称
GoodsSpec
varchar
50
否
货物规格
GoodsUnit
char
8
否
计量单位
GoodsNum
bigint
8
否
入库数量
GoodsPrice
money
8
否
入库价格
GoodsAPrice
money
8
否
入库总金额
ISDate
datetime
8
否
入库日期
HandlePeople
varchar
20
否
经手人
ISRemark
varchar
1000
否
备注
tb_OutStore货物出库表
字段名
数据类型
长度
主键
描述
OSID
bigint
8
主键
出库编号
StoreName
varchar
100
否
仓库名称
GoodsName
varchar
50
否
货物名称
GoodsSpec
varchar
50
否
货物规格
GoodsUnit
char
8
否
计量单位
GoodsNum
bigint
8
否
出库数量
GoodsPrice
money
8
否
出库价格
GoodsAPrice
money
8
否
出库总金额
OSDate
datetime
8
否
出库日期
PGProvider
varchar
100
否
提货单位
PGPeople
varchar
20
否
提货人
HandlePeople
varchar
20
否
经手人
OSRemark
varchar
1000
否
备注
tb_ReturnGoods归还货物表
字段名
数据类型
长度
主键
描述
RGID
bigint
8
主键
还货编号
BGID
bigint
8
否
借货编号
StoreName
varchar
100
否
仓库名称
GoodsName
varchar
50
否
货物名称
GoodsSpec
varchar
50
否
货物规格
RGNum
bigint
8
否
归还数量
NRGNum
bigint
8
否
未归还数量
RGDate
datetime
8
否
归还日期
HandlePeople
varchar
20
否
经手人
RGPeople
varchar
20
否
还货人
RGRemark
varchar
1000
否
备注
Editer
varchar
20
否
记录修改人
EditDate
datetime
8
否
修改日期
tb_Storage仓库信息表
字段名
数据类型
长度
主键
描述
StoreID
bigint
8
主键
仓库编号
StoreName
varchar
100
否
仓库名称
StorePeople
varchar
20
否
仓库联系人
StorePhone
varchar
20
否
仓库电话
StoreUnit
varchar
100
否
仓库传真
StoreDate
datetime
8
否
仓库建立日期
StoreRemark]
varchar
1000
否
供货商备注
Editer
varchar
20
否
记录修改人
EditDate
datetime
8
否
修改日期
4.3创建存储过程
存储过程是SQL语句和可选控制流语句的预编译集合,以一个名称存储,并作为一个单元处理。
本工程数据库使用7个存储过程。
具体如下:
1、proc_Login
存储过程proc_Login主要用于登录时判断用户输入的用户名和用户密码是否正确。
createprocproc_Login(@UserNamevarchar(20),@UserPwdvarchar(20))
as
ifexists(select*fromtb_UserwhereUserName=@UserNameandUserPwd=@UserPwd)
return100
else
return-100
go
2、proc_InsertUser
存储过程proc_InsertUser主要用于向用户表中插入用户信息。
createprocproc_insertUser
(
@UserNamevarchar(20),
@UserPwdvarchar(20),
@UserRightchar(10)
)
as
ifexists(select*fromtb_UserwhereUserName=@UserName)
begin
return100
end
else
begin
insertintotb_User(UserName,UserPwd,UserRight)
values(@UserName,@UserPwd,@UserRight)
end
GO
3、proc_updateUser
存储过程proc_updateUser主要用于修改用户基本信息。
CREATEprocproc_updateUser
(
@UserIDbigint,
@UserPwdvarchar(20),
@UserRightchar(10)
)
as
updatetb_UsersetUserPwd=@UserPwd,UserRight=@UserRightwhereUserID=@UserID
GO
4、proc_insertCheck
存储过程proc_insertCheck主要用于修改用户基本信息。
createprocproc_insertCheck
(
@GoodsIDbigint,
@StoreNamevarchar(100),
@GoodsNamevarchar(50),
@GoodsUnitchar(8),
@CheckNumbigint,
@PALNumbigint,
@CheckPeoplevarchar(20),
@CheckRemarkvarchar(1000)
)
as
ifexists(select*fromtb_CheckwhereGoodsID=@GoodsID)
begin
return100
end
else
begin
insertintotb_Check(GoodsID,StoreName,GoodsName,GoodsUnit,CheckNum,
PALNum,CheckPeople,CheckRemark)values(@GoodsID,@StoreName,@GoodsName,
@GoodsUnit,@CheckNum,@PALNum,@CheckPeople,@CheckRemark)
end
GO
4.4创建触发器
触发器是一种特殊的存储过程,它与数据表相结合,当数据表中的数据被更改时,触发器会被触发,执行相应操作,这说明了触发器是由数据库管理系统调用的。
在SQLServer2000,触发器分为两种,即After触发器和Insteadof触发器。
1、After触发器
在执行了insert、update或delete语句操作之后执行After触发器,它只能在表上指定。
2、Insteadof触发器
该触发器在数据变动前触发,并且它会取代原来进行的操作。
Insteadof触发器可以在带有一个或多个基表的视图上定义。
本工程的数据库用到了6个触发器。
(1)trig_inGoodsONdbo.tb_InStoreFORinsert触发器
触发器trig_inGoods主要实现向货物入库表中添加新记录时,在货物信息表中自动添加或更新记录的功能
(2)trig_inProviderONdbo.tb_InStoreFORinsert触发器
主要实现向货物入库表中添加新记录时,在货物信息表中自动更新记录的功能
(3)trig_outGoodsONONdbo.tb_OutStoreFORinsert,delete触发器
触发器trig_outGoods主要用来实现货物出库时,自动更新货物信息表中对应货物相关记录的功能。
(4)trig_brGoodsONdbo.tb_BorrowGoodsFORinsert,delete触发器
主要实现向货物借出表添加或删除记录时,更新货物借出表中对应货物相关记录。
(5)trig_reGoodsONdbo.tb_ReturnGoodsFORinsert,update,delete触发器
主要实现向货物归还表添加、更新或删除记录时,更新货物归还表中对应货物相关记录。
(6)trig_updateGInfoONdbo.tb_ReturnGoodsFORinsert,update触发器
主要实现向货物归还表添加或更新记录时,更新货物信息表中对应货物相关记录。