仓库管理系统数据库的结构设计.docx
- 文档编号:8367370
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:49
- 大小:2.60MB
仓库管理系统数据库的结构设计.docx
《仓库管理系统数据库的结构设计.docx》由会员分享,可在线阅读,更多相关《仓库管理系统数据库的结构设计.docx(49页珍藏版)》请在冰豆网上搜索。
仓库管理系统数据库的结构设计
4.2数据库设计
数据库的结构设计是一个非常重要的问题,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度。
在数据库系统开发设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免在设计中浪费不必要的人力和物力。
4.2.1数据库需求分析
数据库需求分析是数据库结构设计的第一阶段,是非常重要的一个阶段。
在这个阶段主要是手机基本数据、数据结构以及确定数据处理的流程,为以后进一步设计打下基础。
在仔细调查企业仓库物资设备管理过程的基础上,我们得到本系统所处理的数据流程,如图4-2所示。
仓库现有库存各部门需求企业总体生产计划
汇总处理
设备采购设备出库
设备入库设备还库
图4-2数据流程图
针对本实例,通过对企业仓库管理的内容和流程分析,设计的数据项和数据结构如下。
●设备代码信息
包括的数据项有设备号、设备名称
●现有库存信息
包括的数据项有现有设备、现有数目、总数目、最大库存、最小库存等。
●设备入库信息
包括的数据项有设备号、入库时间、供应商、供应商电话、入库数量、价格、采购员等。
●设备出库信息
包括的数据项有设备号、使用部门、出库时间、出库状况、经手人、出库数量、领取人、用途等。
●设备采购信息
包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。
●设备归还信息
包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。
●设备需求信息
包括的数据项有需求的部门、需求设备、需求数目、需求时间等。
●日志信息
包括操作员、操作人员、操作内容。
有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计。
4.2.2数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体、需求实体。
实体和实体之间的关系E-R图如图4-3~4-8所示。
现有库存
设备号现有库存警戒库存总数
图4-3库存实体E-R图
入库
设备号供应商信息采购价格信息采购员
图4-4入库实体E-R图
出库
设备号使用部门数量时间经手人
图4-5出库实体E-R图
计划采购
设备号库存信息供应信息时间
图4-6设备采购实体E-R图
设备还库
设备号还库时间人还库数量经手人
图4-7还库实体E-R图
部门需求
设备号需求部门需求数量需求时间
图4-8部门需求实体E-R图
实体和实体之间的关系图如图4-9所示。
入库现有库存出库
还库部门需求设备采购
图4-9实体关系图
4.2.3数据库逻辑结构设计
需要将上面的数据库概念结构转化为VisualFoxPro60.数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,形成数据库中表以及各个表之间的关系。
仓库管理系统数据库中各个表的设计结果如下面的几个表格所示,每个表格表示在数据库中的一个表。
表4-1为设备代码表
表4-1
列名
数据类型
可否为空
设备号(主键)
数值型(20)
不能为空
设备名称
字符型(50)
可为空
表4-2为设备入库表
表4-2
列名
数据类型
可否为空
设备号
数值型(20)
不能为空
入库时间(主键)
日期型(8)
可为空
供应商
字符型(50)
可为空
供应商电话
字符型(15)
可为空
入库数量
数值型(20)
可为空
价格
字符型(10)
可为空
采购员
字符型(20)
可为空
表4-3为设备出库表
表4-3
列名
数据类型
可否为空
设备号
数值型(20)
不能为空
出库时间(主键)
日期型(8)
可为空
使用部门
字符型(50)
可为空
出库状况
数值型(20)
可为空
经手人
字符型(20)
可为空
出库数量
数值型(10)
不能为空
领取人
字符型(50)
可为空
用途
字符型(50)
可为空
表4-4为现有库存表
表4-4
列名
数据类型
可否为空
设备号(主键)
数值型(20)
不能为空
现有库存
数值型(20)
可为空
最大库存
数值型(20)
可为空
最小库存
数值型(20)
可为空
总数
数值型(20)
可为空
表4-5为部门需求表
表4-5
列名
数据类型
可否为空
设备号(主键)
数值型(20)
不能为空
部门名称
字符型(20)
不能为空
需要数量
数值型(20)
可为空
需求开始时间
日期型(8)
可为空
需求结束时间
日期型(8)
可为空
表4-6为设备还库表
表4-6
列名
数据类型
可否为空
设备号(主键)
数值型(20)
不能为空
还库时间
日期型(8)
不能为空
仓库管理员
数值型(20)
可为空
归还数量
数值型(20)
可为空
归还人
字符型(10)
可为空
表4-7为操作日志表
表4-7
列名
数据类型
可否为空
操作员
字符型(50)
不能为空
操作内容
字符型(50)
不能为空
操作时间
日期型(8)
可为空
表4-8为设备采购计划表
表4-8
列名
数据类型
可否为空
设备号
数值型(20)
不能为空
现有库存
数值型(20)
可为空
总库存
数值型(20)
可为空
最大库存
数值型(20)
可为空
购买数量
数值型(20)
可为空
供应商
字符型(20)
不能为空
价格
字符型(10)
可为空
计划采购时间(主键)
日期型(8)
可为空
4.3数据库结构的实现
在需求分析、概念结构设计的基础上得到数据库的逻辑结构之后,我们就可以在VisualFoxPro60.数据库系统中实现该逻辑结构。
图4-10新建数据库
打开如图4-10所示的“仓库管理”项目后,在项目管理器中展开数据文件夹,用鼠标选中数据库,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件储存为C:
\仓库管理\仓库管理.dbc。
在弹出的如图4-11所示的数据库设计器中单击鼠标右键,选择“新建表”,为数据库添加数据表(表的内容如表4-1至表4-8所示)。
下面以表4-1为例来介绍表的建立过程。
选择“新建表”,在弹出的对话框中将表存储为C:
\仓库管理\设备代码.dbf。
在弹出的如图4-12所示的表设计器中填写表的内容。
请读者将其与表4-1比较,可以发现表的字段名就是列名。
由于在以后编写的程序中对数据库数据的操作通常是应用表的字段,因此读者在设计字段名时要挑选容易理解的名称。
字段设置完成后,单击“确定”按钮后为表输入数据,如不想现在输入,可以先“取消”,以后再输入。
具体方法如下:
图4-13为表输入数据
(1)如图4-13所示,选中要输入的数据的表,单击“浏览”按钮。
(2)此时弹出的无数据的表,在VisualFoxPro的主窗口中选择“表”,选择“追加薪记录”后,就可以在表中输入数据了,如图4-14所示。
不过这种方法只能一次输入一条记录,要输入第二条记录时,需要再次追加新记录。
如果有一个已有的数据的表,可以使用“使用追加记录”将这个有数据的表追加到当前表中,不过执行那个该操作要求这两个表的结构完全相同。
4.4各个功能模块的创建
按照前面的分析,我们将管理系统的逻辑模块统一到6个实际功能模块中,如图4-15所示。
切换面板用于切换不同的操作,每项具体操作结束后,都会返回到切换面板。
下面对各模块的作用进行说明:
●设备入库模块添加设备到库存中。
●设备出库模块将设备从库从中取出并记录。
●设备还原模块将归还待库存的设备保存到数据库。
●设备需求模块记录各部门的设备要求。
●设备采购模块记录要采购的设备。
●切换面板用于切换到不同的操作,如设备入库、设备出库等。
●显示报表显示库存过多、库存不足等信息。
下面就按照功能模块图来设计该仓库管理系统。
首先在VisualFoxPro6.0中建立一个项目管理器,以便管理本系统中所有数据,命名为仓库管理。
一下操作均在该项目管理器中进行。
以下所有表单的“Desktop”属性全部为“.T.-真”。
4.4.1功能选择界面的设计
这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口,使用一个窗口来实现这一功能。
首先建立一个表单,设其“Caption”属性分别为“仓库管理”。
在该表单上添加6个“按钮”控件,它们的“Caption”属性分别为“设备入库”、“设备出库”、“设备还库”、“部门需求”、“设备采购”和“显示报表”。
然后在表单上添加“图像”控件,并设其“Stretch”属性为“2-Stretch(扩展)”,“Picture”属性为图片所在位置,本例中为“C:
\仓库管理\001.jpg”。
在“command1”(“Caption”属性为“设备入库”)控件的“Click”事件中添加如下代码:
doform设备入库表
thisform.release
在“command2”(“Caption”属性为“设备出库”)控件的“Click”事件中添加如下代码:
doform设备出库表
thisform.release
在“command3”(“Caption”属性为“设备还库”)控件的“Click”事件中添加如下代码:
doform设备还库表
thisform.release
在“command4”(“Caption”属性为“部门需求”)控件的“Click”事件中添加如下代码:
doform部门需求表
thisform.release
在“command5”(“Caption”属性为“设备采购”)控件的“Click”事件中添加如下代码:
doform设备采购表
thisform.release
在“command6”(“Caption”属性为“显示报表”)控件的“Click”事件中添加如下代码:
doform显示报表
thisform.release
在“form1”的属性里选择“autocenter”设置为“.T.-真”,同时将“backcolor”
设置为“255,255,255”,“windowstate”设置为“0-普通”。
添加“form1”的“Init”事件的代码如下:
setdirectorytoc:
\仓库管理\
*将程序的默认的路径指向资源所在的文件夹
该表单设计结果如图4-16所示:
4.4.2设备入库模块的设计
在设备入库模块中将实现设备数据的添加和入库等功能。
在前面的几章的例子中已经详细介绍了关于如何制定具有标准查询并修改功能的表单,其实VisualFoxPro6.0本身也具有生成具有上述功能表单的功能。
下面就介绍如何通过表单导向完成设备入库表单的设计。
首先在项目管理器的文档视图下单击“新建”按钮,如图4-17所示。
然后选择“表单导向”,如图4-18、图4-19所示。
图4-18图4-19
在接下来的向导中,“数据库和表”选择“仓库管理”以及“设备入库表”,这是前面定义好的数据库和表。
由于设备入库需要显示所有的字段,因此我们将可用字段全部移至选定字段,如图所示,单击“下一步”按钮,
在表单样式中,选择“阴影式”以及“图片按钮”,如图所示。
左上角的窗口提供了表单样式的预览功能,图片按钮和文本按钮的区别在于显示的时候是以图片来表达功能还是文字来表达,实现功能的函数没有区别。
选择“上一步”按钮可以跳回上一个界面对表单中显示的字段进行修改。
单击“下一步”按钮后,向导进行到“步骤3-排序次序”,如图所示,选择“设备号”为索引,并选择升序排列。
最后预览表单,核对每项的设置,完成表单向导,如图4-23所示。
值得注意的是,在结束表单向导前,可选择“保存表单以备将来使用”,“保存并运行表单”,或者“保存表单并用表单设计器修改表单”。
由于VisualFoxPro6.0向导生成的表单只具有普遍性,对于当前设计的仓库管理系统还需要一定的改变,因此以我们选择“保存表单并用表设计器修改表单”。
单击“完成”按钮系统提示保存表单,将表单保存为“设备入库表.scx”,存于C:
\仓库管理目录下。
然后打开表单修改器生成的表单,如图所示。
在修改BUTTONSET时,可以通过属性窗口的下拉列表选定单个按钮,调整其位置和其它属性。
如图4-25所示。
根据功能需求,把“cmdPrint”、“”cmdExit、“cmdDelete”和“cmdEdit”的Visible属性都设为“.F.-假”。
添加2个命令按钮,Caption属性分别设为“修改库存”和“回主界面”。
在“回主界面”命令按钮的Click事件中添加代码如下:
thisform.release
doform仓库管理
在修改库存命令按钮的Click事件中添加代码如下:
select现有库存表again
*先在该表单的数据环境中添加现有库存表,如图4-26所示
getid=thisform.设备号1.text1.value
setorderto设备号
seekgetid&&库存表中查找设备号等于getid的记录
iffound()
getnum=thisform.入库数量1.text1.value
update现有库存表;
set现有库存=(现有库存+getnum)where(设备号=getid)
*如果库存表中有该项设备,则更新库存表
else
insertinto现有库存表(设备号,现有库存);
value(thisform.设备号1.text1.value,thisform.入库数量1.text1.value)
endif
insertinto操作日志表(操作员,操作内容,操作时间);
values(thisform.采购员1.text1.value,'设备入库',date())
*如果库存表中没有该项设备,则添加设备到库存表
保存后运行表单,界面如图4-27所示:
4.4.3设备出库模块的设计
在设备出库模块中将实现设备出库数据的添加和修改库存等功能。
该模块的功能和设备入库的功能相似。
具体操作可以参考设备入库模块的设计,设计最终的界面如图4-28所示。
在表单的左上角加上了显示当前时间的功能,添加标签label2的caption属性设为“当前时间”;添加label3的caption属性设为空;为当前表单的label3init事件添加如下代码:
this.caption=dtoc(date())
&&date()用来获取当前的系统时间
&&Init事件在每次表单被初始化时被调用
该模块具体实现留给读者自行完成,表4-9、4-10列出了表单中所用到控件的属性值。
下面时设备出库表单中“修改库存”命令按钮的Click事件的代码:
setdirectorytoc:
\仓库管理\
use现有库存表again
*先在该表单的数据环境中添加现有库存表
getid=thisform.设备号1.text1.value
setorderto设备号
seekgetid
*在现有库存表中查找设备号等于getid的纪录
iffound()
getnum=thisform.出库数量1.text1.value
update现有库存表;
set现有库存=(现有库存-getnum)where(设备号=getid)
insertinto操作日志表(操作员,操作内容,操作时间);
values(thisform.领取人1.text1.value,‘设备出库,’date())
*如果库存表中有该项设备,则更新库存表
insertinto操作日志表(操作员,操作内容,操作时间);
values(thisform.领取人1.text1.value,'设备出库',date())
else
messagebox("出错",1,"错误的设备号")
*如果没有该设备号则报告出错信息
endif
4.4.4设备还库模块的设计
在设备还库模块中将实现设备还库数据的添加和修改库存等功能,按照上文介绍的步骤设计设备还库表。
设备还库表所可能用到的控件的属性如表4-11、4-12所示.
下面是设备还库表中“修改库存”命令按钮的click事件的代码:
setdirectorytoc:
\仓库管理\
use现有库存表again
*先在该表单的数据环境中添加现有库存表
getid=thisform.设备号1.text1.value
setorderto设备号
seekgetid
*在现有库存表中查找设备号等于getid的纪录
iffound()
getnum=thisform.归还数量1.text1.value
update现有库存表;
set现有库存=(现有库存-getnum)where(设备号=getid)
insertinto操作日志表(操作员,操作内容,操作时间);
values(thisform.归还人1.text1.value,'设备还库',date())
*如果库存表中有该项设备,则更新库存表,同时更新操作日志
else
messagebox("出错",1,"错误的设备号")
*如果没有该设备号则报告出错信息
endif
保存后运行表单,可得到如图4-29所示的设备还库表。
4.4.5设备需求模块的设计
在设备需求模块中将实现设备需求数据的添加和保存日志等功能。
首先通过VisualFoxpro的表单向导生成所需的设备需求表单,选择部门需求表的所有可用字段,然后为保持程序风格的一致,继续采用表单的阴影式和图片按钮的风格。
在“步骤3-排序次序”时。
选择设备号的升序排列。
最后单击“完成”按钮,把表单保存在“c:
\仓库管理\”目录下,名为“设备需求.scx”。
重要步骤参照图4-30到图4-33。
通过表单向导生成的表单如图4-33所示,用户可以调节控件的位置,修改表单中控件的属性,最后结果如图4-34所示。
相关的属性设置如表4-13、表4-14所示。
在表单设计器中,双击“保存日志”命令按钮。
添加click事件代码如下:
insertinto操作日志表(操作员,操作内容,操作时间)
values(username,'设备需求',date())
*把设备需求写入操作日志表中
双击回主界面命令按钮,添加click事件代码如下:
thisform.release
doform仓库管理
*运行仓库管理界面
保存对表单所作的修改。
4.4.6设备采购模块的设计
在设备采购模块中将实现设备采购数据的添加和保存日志等功能。
(1)由数据表生成表单
通过VisualFoxpro的表单向导,生成设备采购计划表单。
在选择数据库和表时,选择仓库管理数据库和设备采购计划表。
在选择字段时,选择所有可用字段,选择阴影式和图片按钮作为设备采购计划表的样式。
选择计划采购时间的升序排列作为设备采购计划表的索引。
(2)为窗体修改和添加命令按钮
添加2个命令按钮“保存日志”和“回主界面”。
设置表单中控件的属性。
下面的表列出了需要修改的控件的名称以及属性值。
表4-15Form1控件的主要属性
属性名称
属性值
Caption
设备采购表
Autocenter
.T.-真
BackColor
255.255.255
表4-16ButtonSet1控件的主要属性:
控件名
属性名称
属性值
cmdExit
Visible
.F.-假
cmdDelete
Visible
.F.-假
cmdPrint
Visible
.F.-假
cmdEdit
Visible
.F.-假
Command1
Caption
保存日志
Command2
Caption
回主界面
3.为按钮添加click事件代码:
在表单设计器中,双击保存日志命令按钮。
添加click事件代码如下:
insertinto操作日志表(操作员,操作内容,操作时间)
values(username,"设备需求",date())
*把设备需求写入操作日志表中
双击回主界面按钮,添加click事件代码如下:
thisform.release
*释放本表单
doform仓库管理
*运行仓库管理界面
保存对表单所作的修改,表单运行效果如图4-35所示:
4.4.7显示报表模块的设计
在该模块中,一共要显示3个报表,分别提供库存不足,库存过多和操作日志等信息。
1.设计显示报表表单
在项目管理器的文档视图下选择“新建”,然后选择新建表单,如图4-36所示。
4-36
在如图4-37所示的空白表单中添加一个页框控件,并按照下表4-17设置页框的属性,同时在数据环境里添加现有库存表和操作日志表。
“pageframe1”控件的主要属性
控件名
属性名称
属性值
Form1
Caption
显示报表
Pageframe1
Caption
3
Pageframe1.Page1
Caption
库存不足表
Pageframe1.Page2
Caption
库存过多表
Pageframe1.Page3
Caption
操作日志
分别为每个page添加一个表格grid1,如图4-38所示:
分别为每个page添加一个表格grid1,如图所示:
库存过多表库存不足表
操作日志表
设置表格控件的属性,如表4-18所示:
控件名
属性名称
属性值
Pageframe1.Page1.grid1
ReadOnly
.T.-真
Pageframe1.Page1.grid1
RecordSourceType
1-别名
Pageframe1.Page1.grid1
ColumnCount
-1
Pageframe1.Page2.grid1
ReadOnly
.T.-真
Pageframe1.Page2.grid1
RecordSourceType
1-别名
Pageframe1.Page2.grid1
ColumnCount
-1
Pageframe1.Page3.grid1
ReadOnly
.T.-真
Pageframe1.Page3.grid1
RecordSourceType
1-别名
Pageframe1.Page3.grid1
ColumnCount
-1
2.代码设计
定义P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库 管理 系统 数据库 结构设计