仓储管理系统设计说明书数据库.docx
- 文档编号:6568215
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:15
- 大小:501.24KB
仓储管理系统设计说明书数据库.docx
《仓储管理系统设计说明书数据库.docx》由会员分享,可在线阅读,更多相关《仓储管理系统设计说明书数据库.docx(15页珍藏版)》请在冰豆网上搜索。
仓储管理系统设计说明书数据库
仓储管理系统
设计说明书
学院计算机与信息学院
专业电子商务
学号084831397
姓名谢序钢
班级08计商A1
实习总结:
详细程序设计书
一、需求分析
1.目标用户
仓库管理人员。
2.主要功能
仓库入库管理:
主要是管理员对进入仓库的货物进行登记,包括货物号、货物名、货物数、货物价格、货主、以及仓库号,以便统一管理。
当同一货主的同种货物入库时,要进行货物记录的追加,同时也要记录仓库入库的日志信息。
仓库提货管理:
当货主提走货物时进行该管理在货物出库时进行登记,登记的内容有编号、货物号、货物数、货物价格、货主、仓库号、日期等。
仓库货物查询:
可按照货物名称查询、按照货主查询以及按照仓库查询等。
这些查询主要是在用户需要得知货物资料时进行。
由于只是进行查询操作,所以数据以只读形式出现。
货物信息维护功能:
主要对货物的基本资料和信息进行维护。
其中包括货物价格的变化、货物种类的变化等。
3.数据流图
仓储管理0层数据流图
仓储管理1层数据流图
货物入库管理1层数据流图
货物出库1层数据流图
货物库存1层数据流图
仓库管理1层数据流图
各类编码1层数据流图
4.数据字典
分析数据流图,确定数据流的描述:
“货物入库”数据流
说明:
货物入库的货物信息
数据流来源:
入库货物信息
数据流去向:
入库货物名单显示
组成:
入库货号,货名,时间
“货物出库“数据流
说明:
登记出库货物的各种信息
数据流来源:
出库货物的货号名称
数据流去向:
出库货物的名单显示
组成:
出库货号,货名,时间
“仓储货物“数据流
说明:
登记存储货物信息
输入:
货物名,号码,数量
输出:
仓储货物表
出库,入库的描述
处理过程:
货物出库,入库
说明:
货主按所需提走货物,按所需存储货物
输入:
货物名称
输出:
提取货物名,存储货物名称
二.概念结构设计
1.确定各实体之间的关系以及约束
.一个仓库可以存放多种货物,一中货物可以存放在多个仓库中
一个仓库可以提取多个货物出库,新来的货物可以存入多个仓库中,一个货主可以拥有多种货物,
2.各实体的属性
.仓库(仓库号,仓库名,负责人号,负责人姓名,仓位数,面积)
.货物(货物号,货物名,货物数量,仓库号,货物类型,单位,参考价格)
.货主(货主编号,货主姓名)
.审核(审核人,审核否,备注信息)
联系:
.入库(入库数量,入库时间,入库编号)
存储(货主姓名)
3.仓库管理总E-R图
4.仓库管理的CDM设计图
三.逻辑结构设计与物理结构设计
1.仓库管理的PDM设计图
四.仓储管理数据库实施
在PowerDesigner中点击Createbase,CreateTestDate,使其生成测试数据库和测试数据,然后在此基础上修改表表中数据,并在SQLServer2000测试通过。
修改过的源程序详见“源程序”文件夹
五.入库数量与仓位数转化的函数设计
功能要求:
将入库的货物按照入库的数量转换成所要占据的仓位数的功能。
入口参数:
入库数量单位:
吨
返回:
仓位数单位:
个
仓位数的转换算法:
仓位数=ceiling(入库数量/仓位数)
脚本:
AmountConvert.sql
createfunctionAmountConvert(@inputamountint,@wamountint)
--@inputmount:
入库数量
--@wamount:
仓位数
returnsint
As
begin
return(ceiling(@inputamount/10))
end
test.sql
selectGood.Gname,dbo.AmountConvert(Intoamount,Wamount)仓位数,Input.Intoamount
fromGood,Input,Warehouse
六.存储过程
1.随机查看任意号码仓库的仓库信息,使用输入参数,创建一个存储过程
源程序:
Pro_2.test
usecc
go
createprocedurepro_2
@wnochar
(2)
as
selecta.Wno,a.Gno,a.Gname,c.Oname,b.Gamount,b.Gstyle,b.Gprice,b.Gunite
fromWarehousea,Goodb,Ownerc
wherea.Gno=b.Gnoandb.Oname=c.Onameanda.Gname=b.Gnameanda.Wno=@wno
test1.sql
executepro_2'AA'
七.触发器
1.实现修改现存货物数量的触发器
实现功能:
当货物出库时,在货物表中的剩余货物数量可以自动修改。
t.sql
altertableGood
addRestintnull
the_rest.sql
createtriggerthe_rest
onOutt
forinsert,update,delete
as
declare@therestint
declare@Gnochar(6),@Gnamevarchar(10)
--declareinsert_cursorcursorforselectGno,Gnamefrominserted
declaredelete_cursorcursorforselectGno,Gnamefromdeleted
begin
opendelete_cursor
fetchnextfromdelete_cursorinto@Gno,@Gname
while@@fetch_status=0
begin
set@therest=(selectGood.Gamount-Outt.Oamount
fromGood,Outt
whereGood.Gno=Outt.GnoandOutt.Gno=@GnoandGood.Gname=@Gname)
updateGoodsetRest=@therestwhereGname=@GnameandGno=@Gno
fetchnextfromdelete_cursorinto@Gno,@Gname
end
closedelete_cursor
deallocatedelete_cursor
/*ifupdate(Oamount)
begin
openinsert_cursor
fetchnextfrominsert_cursorinto@Gno,@Gname
while@@fetch_status=0
begin
set@therest=(selectGood.Gamount-Outt.Oamount
fromGood,Outt
whereGood.Gno=Outt.GnoandOutt.Gno=@GnoandGood.Gname=@Gname)
printstr(@therest)+'delete'+'mmm'+@Gno+@Gname
updateGoodsetRest=@therestwhereGno=@GnoandGname=@Gname
fetchnextfrominsert_cursorinto@Gno,@Gname
end
closeinsert_cursor
deallocateinsert_cuosor
end*/
end
execute1.sql
updateOutt
setOamount=70
whereWno='CC'andGno='CC2000'andGname='钢铁'
execute2.sql
updateOutt
setOamount=70
whereWno='AA'andGno='AA1000'andGname='水泥'
2.不准修改的货主姓名的触发器
T2.sql
/*不准修改的货主姓名的触发器*/
createtrigger[修改货主姓名]
onGood
forupdate
as
ifupdate(Oname)
begin
rollbacktransaction
raiserror('不能修改货主姓名',16,10)
end
test2.sql
updateGood
setOname='王五'
whereGno='AA1000'andGname='水泥'
附录A:
设计所用结构表
1.Warehouse仓库
说明
字段名称
数据类型
约束
备注
仓库号
Wno
Char
(2)
P
货物号
Gno
Char(6)
F
货物名
Gname
Varchar(10)
F
仓库名
Wname
Varchar(16)
仓位数
Wamount
int
面积
Warea
Numeric(3,1)
负责人编号
Rno
Varchar(8)
负责人姓名
Rname
Varchar(8)
2.Goods货物
说明
字段名称
数据类型
约束
备注
货物号
Gno
Char(6)
P
前2位为仓库号,后4位物品编号
货物名
Gname
Varchar(10)
P
审核人
Checker
Varchar(8)
F
货主姓名
Oname
Varchar(8)
F
货物数量
Gamount
Int
货物类型
Gstyle
Varchar(20)
单位
Gunite
Char
(1)
参考价格
Gprice
int
3.Owner货主
说明
字段名称
数据类型
约束
备注
货主编号
Ownno
Char(4)
P
货主姓名
Oname
Varchar(8)
4.Input入库
说明
字段名称
数据类型
约束
备注
入库编号
Intono
Varchar(8)
仓库号
Wno
Char
(2)
PF
货物号
Gno
Char(6)
PF
货物名
Gname
Varchar(10)
PF
入库时间
Intotime
Datetime
入库数量
Intoamount
Int
5.Out货物出库
说明
字段名称
数据类型
约束
备注
出库编号
Ono
Varchar(8)
仓库号
Wno
Char
(2)
PF
出库时间
Otime
Datetime
出库数量
Oamount
Int
货物号
Gno
Char(6)
PF
货物名
Gname
Varchar(10)
PF
6.Check审核
说明
字段名称
数据类型
约束
备注
审核人
Checker
Varchar(8)
P
审核否
Ifcheck
Char
(2)
备注信息
Info
Varchar(30)
实习总结:
本次的设计中,用到了很多的知识点。
经历了数据库设计的6个阶段,在每个阶段中都有其不同的任务,个人感觉第一阶段,需求分析是最繁琐的,所谓万事开头难,但只有将需求分析把握住了,后面的任务就简单了。
这个数据库设计出来后,还要根据要求的功能编写函数,存储过程,触发器,在这部分是有点难度的,但通过仔细的读研书本后,本人编写了一个函数用来解决入库数量与仓位数转化,编写了一个存储过程用来查询仓库表中任意指定的仓库所有的信息,编写了2个触发器,本别用来解决实现修改现存货物数量和限制修改的货主姓名权限。
通过这几天的实习,我深刻的感受到数据库设计的不易与艰辛,它需要不断的调试与编写,才能成功。
此次的实习,也为我今后的学习以及工作埋下了铺垫。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓储 管理 系统 设计 说明书 数据库