《[理学]数据库原理课程设计.doc》由会员分享,可在线阅读,更多相关《[理学]数据库原理课程设计.doc(31页珍藏版)》请在三一办公上搜索。
1、数据库原理课程设计 课程设计题目:小型工厂库存管理系统 班级 1班 学号 20082300222 姓名 黄 文 青 指导教师 李振宏 时间:2010 年12 月 26 日 至 2010 年成绩 指导教师签字 年 月 日目 录1、开发背景42、功能描述43、业务流程分析44、数据流程分析44.1、数据流程图44.2、数据字典55、概念模型设计76. 逻辑模型设计和优化77. 物理设计和实施88、课程设计心得体会101、开发背景随着企业管理信息化的发展,网络及计算机的引入使管理跃上了一个新的发展平台。仓库管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以仓库管理
2、系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理产品,这种管理方式存在着许多缺点,如:效率低、保密性差等。另外,由于时间一长,将产生大量的文件和数据,这对于查找、更新和维护产品都带来了不少的困难。作为计算机应用的一部分,使用计算机对仓库信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高仓库管理的效率。2、功能描述本仓库管理系统需要完成功能主要有:仓库管理各种信息的输入,包括货物、供应商、客户、仓库信息的输入等。仓库管理各种信息的查询、统计、修改和维护,包括货物、单据查
3、询,货物出入、职员操作统计,各种信息的修改和维护等。打印报表的生成。在货物管理中加入最高储备和最低储备字段,对仓库中的产品实现监控和报警。操作日志的管理。仓库管理系统的使用帮助。3、业务流程分析仓库管理系统基本信息单据中心查询统计报表打印维护设置系统帮助新增单据单据管理查询模块统计模块4、数据流程分析4.1、数据流程图收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析调查有关仓库管理信息需求的基础上,得到如图41所示的本系统所处理的数据流程。仓库现有库存汇总、处理各种单据产品入库产品出库报表打印图4-1 仓库管理系统数据流程图4.2、数据字典1
4、 数据流定义数据流名称:货物信息数据流来源:管理员数据流去向:货物信息管理数据流组成:I01-02+I01-03+I01-04+I01-05+I01-06+I01-07+I01-10数据流名称:货物数据数据流来源:货物信息管理数据流去向:货物信息表数据流组成:I01-02+I01-03+I01-04+I01-05+I01-06+I01-07+I01-08+I01-09+I01-10+I01-11+I01-12+I01-13+I01-14数据流名称:仓库信息数据流来源:管理员数据流去向:仓库信息管理数据流组成:I01-15+I01-16+I01-17数据流名称:仓库数据数据流来源:仓库信息管理数
5、据流去向:仓库信息表数据流组成:I01-15+I01-16+I01-17数据流名称:用户基本信息数据流来源:管理员数据流去向:用户基本信息管理数据流组成:I01-19+I01-20+I01-21数据流名称:用户基本数据数据流来源:用户基本信息管理数据流去向:用户基本信息表数据流组成:I01-19+I01-20+I01-21数据流名称:入库信息数据流来源:管理员数据流去向:入库信息管理数据流组成:I01-22+I01-23+I01-24+I01-25+I01-28+I01-29数据流名称:入库数据数据流来源:入库信息管理数据流去向:入库信息表数据流组成:I01-22+I01-23+I01-24+
6、I01-25+I01-26+I01-27+I01-28+I01-29数据流名称:出库信息数据流来源:管理员数据流去向:出库信息管理数据流组成:I01-22+I01-23+I01-24+I01-25+I01-28+I01-29数据流名称:出库数据数据流来源:出库信息管理数据流去向:出库信息表数据流组成:I01-22+I01-23+I01-24+I01-25+I01-26+I01-27+I01-28+I01-29+I01-36数据流名称:公司信息数据流来源:管理员数据流去向:公司信息管理数据流组成:I01-30+I01-31+I01-32+I01-33数据流名称:公司数据数据流来源:公司信息管理数
7、据流去向:公司信息表数据流组成:I01-30+I01-31+I01-32+I01-33+I01-34+I01-35数据流名称:财务信息数据流来源:管理员数据流去向:财务信息管理数据流组成:I01-05+I01-06+I01-27+I01-36数据流名称:财务数据数据流来源:财务信息管理数据流去向:账目信息表数据流组成:I01-02+I01-03+I01-05+I01-06+I01-17+I01-27+I01-29+I01-36数据流名称:盘存信息数据流来源:管理员数据流去向:盘存信息管理数据流组成:I01-02+I01-03+I01-04+I01-11数据流名称:盘存数据数据流来源:盘存信息管
8、理数据流去向:盘存信息表数据流组成:I01-01+I01-02+I01-03+I01-04+I01-10+I01-11+I01-175、概念模型设计根据上面的设计规划出的实体有:现有库存信息实体、入库信息实体、出库信息实体、借入信息实体、借出信息实体、调拨信息实体图和报损信息实体图。各个实体具体的描述E-R图如下:现有库存信息实体E-R图如图4-2所示。现有库存信息实体编号货物名称最低限量最高限量图4-2 现有库存信息实体E-R图入库单信息实体E-R图如图4-3所示。入库信息实体编号经办人编号入库时间、单价、数量供应商编号图4-3 入库单信息实体E-R出库单信息实体E-R图如图4-4所示。出库
9、信息实体编号经办人编号入库时间、单价、数量客户编号图4-4 出库信息实体E-R借入信息实体E-R图如图4-3所示。借入信息实体编号经办人编号借入时间、单价、数量货物编号图4-5 借入信息实体E-R图借出信息实体E-R图如图4-6所示。借出信息实体编号经办人编号借出时间、数量货物编号图4-6 借出信息实体E-R调拨信息实体E-R图如图4-7所示。调拨信息实体编号经办人编号目标仓库编号原仓库编号图4-7 调拨信息实体E-R报损信息实体E-R图如图4-4所示。报损信息实体编号经办人编号报损时间、单价、数量仓库编号图4-8 报损信息实体E-R实体和实体之间的关系E-R图如图4-9所示。现有库存入库出库
10、借入借出调拨报损图4-9 实体之间关系E-R图6. 逻辑模型设计和优化库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。表4-1为货物基本信息表。表4-1 货物基本信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物名称文本64不可货物类别文本50可货物规格文本50可计量单位文本50可最高限量数字长整型不可最低限量数字长整型不可备注备注可 表4-2为仓库信息表表4-2 仓库信息表字段名称数据类型字段大小可否为空编号数字长整型不可仓库名称文本50不可仓库地点文本255可保管理员编号数字长整型可备注备注可 表4-3为库存状况信息表表4-3 库存状况信息
11、表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可库存数量数字长整型不可仓库编号数字长整型不可 表4-4为入库单信息表表4-4 入库单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可入库时间日期/时间不可入库单价货币不可入库数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-5为出库单信息表表4-5 出库单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可出库时间日期/时间不可出库单价货币不可出库数量数字长
12、整型不可客户编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-6为借入单信息表表4-6 借入单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可借入时间日期/时间不可借入数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-7为借出单信息表表4-6 借出单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可借出时间日期/时间不可借出数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状
13、况文本50不可其它金额货币可备注备注可表4-8为调拨单信息表表4-8 调拨单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可调拨时间日期/时间不可调拨数量数字长整型不可原仓库编号数字长整型不可目标仓库编号数字长整型不可其它金额货币可备注备注可表4-9为报损单信息表表4-9 报损单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可报损时间日期/时间不可报损单价货币不可报损数量数字长整型不可仓库编号数字长整型不可其它金额货币可备注备注可 表4-10为盘点单信息表 表4-10 盘点单信息表字段名
14、称数据类型字段大小可否为空编号数字长整型不可仓库编号数字长整型不可盘点时间日期/时间不可经办人编号数字长整型不可盘点数据备注不可表4-11为系统日志信息表表4-11 系统日志信息表字段名称数据类型字段大小可否为空用户名文本50不可操作时间日期/时间不可操作内容备注不可表4-12为用户管理信息表表4-11 用户管理信息表字段名称数据类型字段大小可否为空用户名文本64不可用户密码文本50不可用户权限数字长整型不可 7. 物理设计和实施 Private Declare Function GetWindow Lib user32 (ByVal hwnd As Long, ByVal wCmd As L
15、ong) As LongPublic Sub InitPurview() 初始化17种权限状态 Dim i As Integer For i = 16 To 0 Step -1 If GetBit(Purview, i + 1) = 0 Then 权限类别(16 - i) = 0 Else 权限类别(16 - i) = 1 End If NextEnd SubPrivate Sub InitMenu() 根据用户权限来初始化菜单 If 权限类别(3) = 0 Then M月盘点.Enabled = False tbToolBar.Buttons(4).Enabled = False End I
16、f If 权限类别(4) = 0 Then M供应商.Enabled = False 登记新供应商.MouseIcon = Picture1.MouseIcon End If If 权限类别(5) = 0 Then M往来客户.Enabled = False 登记新客户.MouseIcon = Picture1.MouseIcon End If If 权限类别(6) = 0 Then M单据查询.Enabled = False M库存查询.Enabled = False M货物出入统计.Enabled = False M职员操作统计.Enabled = False L货物出入统计.MouseI
17、con = Picture1.MouseIcon L职员操作统计.MouseIcon = Picture1.MouseIcon L单据查询.MouseIcon = Picture1.MouseIcon L库存查询.MouseIcon = Picture1.MouseIcon tbToolBar.Buttons(5).Enabled = False tbToolBar.Buttons(8).Enabled = False End If If 权限类别(8) = 0 Then M打印入库单.Enabled = False M打印出库单.Enabled = False M打印借入单.Enabled
18、= False M打印借出单.Enabled = False M打印调拔单.Enabled = False M打印报损单.Enabled = False M打印月盘点.Enabled = False tbToolBar.Buttons(10).Enabled = False End If If 权限类别(9) = 0 Then M公司信息.Enabled = False 修改公司信息.MouseIcon = Picture1.MouseIcon End If If 权限类别(10) = 0 Then M职员信息.Enabled = False 登记新职员.MouseIcon = Picture
19、1.MouseIcon End If If 权限类别(11) = 0 Then M仓库信息.Enabled = False 创建新仓库.MouseIcon = Picture1.MouseIcon End If If 权限类别(12) = 0 Then M货物信息.Enabled = False 登记新货物.MouseIcon = Picture1.MouseIcon End If If 权限类别(13) = 0 Then M数据清除.Enabled = False M系统初始化.Enabled = False End If If 权限类别(14) = 0 Then M备份数据库.Enable
20、d = False M还原数据库.Enabled = False M还原到昨天数据库.Enabled = False 备份数据库.MouseIcon = Picture1.MouseIcon 还原数据库.MouseIcon = Picture1.MouseIcon End If If 权限类别(15) = 0 Then M查看日志.Enabled = False 查看日志.MouseIcon = Picture1.MouseIcon tbToolBar.Buttons(12).Enabled = False End If If 权限类别(16) = 0 Then mnuUserManage.E
21、nabled = False L用户管理.MouseIcon = Picture1.MouseIcon End IfEnd Sub“菜单”中的各个“子菜单”的程序代码如下:启动主窗体时的需要的代码Private Sub Form_Load() 初始化m_checkado m_checkado.ConnectionString = DataConnectString m_checkado.Visible = False 每天首次运行自动备份数据库 fMainForm.m_checkado.RecordSource = select 操作时间 from 系统日志 order by 操作时间 des
22、c fMainForm.m_checkado.Refresh If fMainForm.m_checkado.Recordset.RecordCount 0 Then fMainForm.m_checkado.Recordset.MoveFirst Dim t As String t = fMainForm.m_checkado.Recordset.Fields(操作时间).Value 如果今天从未有人登陆,备份数据库 If InStr(1, t, Str(Date) 1 Then BackupData DataPath, App.Path + everyday.bkp End If Else
23、 BackupData DataPath, App.Path + everyday.bkp End If fMainForm.WriteLog (登陆系统) 写入系统日志 InitPurview 初始化各种权限类别 InitMenu 初始化菜单 加载图片 Picture1.Picture = LoadPicture(App.Path + dataground1.jpg)End Sub “基本信息”菜单下的“退出”子菜单的Click事件的程序代码如下。点击“退出”会退出系统,但在此之前系统首先会写入系统日志。Private Sub Form_Unload(Cancel As Integer) f
24、MainForm.WriteLog (退出系统) 写入系统日志End SubPrivate Sub mnuFileExit_Click() Unload MeEnd Sub “维护设置”菜单下的“修改密码”子菜单的Click事件的程序代码如下。点击“修改密码”会弹出修改当前用户密码窗口。Private Sub mnuModifyPassword_Click() PasModify.Show vbModalEnd Sub “维护设置”菜单下的“用户管理”子菜单的Click事件的程序代码,如下。点击“用户管理”会弹出用户管理窗口。Private Sub mnuUserManage_Click()
25、用户管理.Show vbModalEnd Sub “帮助”菜单下的“关于仓库管理系统”子菜单的Click事件的程序代码如下。点击“关于仓库管理系统”会弹出系统帮助窗口。Private Sub mnuHelpAbout_Click() frmAbout.Show vbModal, MeEnd Sub “打印报表”菜单下的“页面设置”子菜单的Click事件的程序代码如下。点击“页面设置”会弹出页面设置对话框。Private Sub mnuFilePageSetup_Click() On Error Resume Next With dlgCommonDialog .DialogTitle = 页面
26、设置 .CancelError = True .ShowPrinter End WithEnd Sub “视图”菜单下的“状态栏”子菜单的Click事件的程序代码如下。点击“状态栏”主窗体会隐藏状态栏。Private Sub mnuViewStatusBar_Click() sbStatusBar.Visible = True - sbStatusBar.Visible mnuViewStatusBar.Checked = sbStatusBar.VisibleEnd Sub “视图”菜单下的“工具栏”子菜单的Click事件的程序代码如下。点击“工具栏”主窗体会隐藏工具栏。Private Su
27、b mnuViewToolbar_Click() tbToolBar.Visible = True - tbToolBar.Visible mnuViewToolbar.Checked = tbToolBar.VisibleEnd Sub“单据中心”菜单下的“报损单管理”子菜单的Click事件的程序代码如下。点击“报损单管理”会弹出报损单管理窗口。Private Sub M报损单_Click() 报损单.Show vbModalEnd Sub“维护设置”菜单下的“备份数据库”子菜单的Click事件的程序代码如下。点击“备份数据库”系统会提示是否备份数据库,如果点击“是”,系统会备份数据库。Pr
28、ivate Sub M备份数据库_Click() On Error GoTo failure With dlgCommonDialog .DialogTitle = 数据库备份为. .ShowSave If Len(.filename) = 0 Then Exit Sub If BackupData(DataPath, .filename) = 1 Then MsgBox 备份成功! fMainForm.WriteLog (备份数据) 写入系统日志 Elsefailure: MsgBox 备份失败! End If End With End Sub “维护设置”菜单下的“查看日志”子菜单的Cli
29、ck事件的程序代码如下。点击“查看日志”会弹出查看日志窗口。Private Sub M查看日志_Click() 系统日志.Show vbModal End Sub “打印报表”菜单下的“打印报损单”子菜单的Click事件的程序代码如下。点击“打印报损单”会弹出打印报损单窗口。Private Sub M打印报损单_Click() Dim f As New 报损单 f.打印报损单.left = f.B新增报损单.left f.打印报损单.Top = f.B新增报损单.Top f.B新增报损单.Visible = False f.删除报损单.Visible = False f.Show vbModa
30、l Unload f End Sub “打印报表”菜单下的“打印出库单”子菜单的Click事件的程序代码如下。点击“打印出库单”会弹出打印出库单窗口。Private Sub M打印出库单_Click() Dim f As New 出库单 f.打印出库单.left = f.B新增出库单.left f.打印出库单.Top = f.B新增出库单.Top f.B新增出库单.Visible = False f.删除出库单.Visible = False f.退出出库单.Visible = False f.Show vbModal Unload fEnd Sub “打印报表”菜单下的“打印调拔单”子菜单的
31、Click事件的程序代码如下。点击“打印调拔单”会弹出打印调拔单窗口。Private Sub M打印调拔单_Click() Dim f As New 调拔单 f.打印调拔单.left = f.B新增调拔单.left f.打印调拔单.Top = f.B新增调拔单.Top f.B新增调拔单.Visible = False f.删除调拔单.Visible = False f.Show vbModal Unload fEnd Sub “打印报表”菜单下的“打印借出单”子菜单的Click事件的程序代码如下。点击“打印借出单”会弹出打印借出单窗口。Private Sub M打印借出单_Click() Di
32、m f As New 借出单 f.打印借出单.left = f.B新增借出单.left f.打印借出单.Top = f.B新增借出单.Top f.B新增借出单.Visible = False f.删除借出单.Visible = False f.退出借出单.Visible = False f.Show vbModal Unload fEnd Sub“打印报表”菜单下的“打印借入单”子菜单的Click事件的程序代码如下。点击“打印借入单”会弹出打印借入单窗口。Private Sub M打印借入单_Click() Dim f As New 借入单 f.打印借入单.left = f.B新增借入单.le
33、ft f.打印借入单.Top = f.B新增借入单.Top f.B新增借入单.Visible = False f.删除借入单.Visible = False f.退出借入单.Visible = False f.Show vbModal Unload f End Sub“打印报表”菜单下的“打印入库单”子菜单的Click事件的程序代码如下。点击“打印入库单”会弹出打印入库单窗口。Private Sub M打印入库单_Click() Dim f As New 入库单 f.打印入库单.left = f.B新增入库单.left f.打印入库单.Top = f.B新增入库单.Top f.B新增入库单.V
34、isible = False f.删除入库单.Visible = False f.退出入库单.Visible = False f.Show vbModalUnload fEnd Sub“打印报表”菜单下的“打印月盘点”子菜单的Click事件的程序代码如下。点击“打印月盘点”会弹出打印月盘点窗口。Private Sub M打印月盘点_Click() 打印月盘点.Show vbModalEnd Sub “维护设置”菜单下的“还原到昨天数据库”子菜单的Click事件的程序代码如下。点击“还原到昨天数据库”会还原到昨天用户使用的数据库。Private Sub M还原到昨天数据库_Click() On
35、Error GoTo failure If MsgBox(还原数据库将导致现在数据库数据丢失,您确信要还原数据库吗?, vbYesNo Or vbQuestion) = vbNo Then Exit Sub If ResumeData(DataPath, App.Path + everyday.bkp) = 1 Then InitAfterResume 初始化还原后的信息 MsgBox 还原成功! Elsefailure: MsgBox 还原失败! End IfEnd Sub“维护设置”菜单下的“还原数据”子菜单的Click事件的程序代码如下。点击“还原数据”系统会还原你想还原的数据库。Pri
36、vate Sub M还原数据库_Click()On Error GoTo failure With dlgCommonDialog .DialogTitle = 数据库还原于. .ShowOpen If Len(.filename) = 0 Then Exit SubIf MsgBox(还原数据库将导致现在数据库数据丢失,您确信要还原数据库吗?, vbYesNo Or vbQuestion) = vbNo Then Exit Sub If ResumeData(DataPath, .filename) = 1 Then InitAfterResume 初始化还原后的信息 MsgBox 还原成功
37、! Elsefailure: MsgBox 还原失败! End If End WithEnd Sub“基本信息”菜单下的“仓库信息”子菜单的Click事件的程序代码如下。点击“仓库信息”会弹出仓库信息窗口。Private Sub M仓库信息_Click() 仓库.Show vbModalEnd Sub “单据中心”菜单下的“出库单管理”子菜单的Click事件的程序代码如下。点击“出库单管理”会弹出出库单管理窗口。Private Sub M出库单_Click() 出库单.Show vbModalEnd Sub “查询统计”菜单下的“单据查询”子菜单的Click事件的程序代码如下。点击“单据查询”
38、会弹出单据查询窗口。Private Sub M单据查询_Click() 单据查询.Show vbModalEnd Sub“单据中心”菜单下的“调拨单管理”子菜单的Click事件的程序代码如下。点击“调拨单管理”会弹出调拨单管理窗口。Private Sub M调拔单_Click() 调拔单.Show vbModalEnd Sub“维护设置”菜单下的“公司信息”子菜单的Click事件的程序代码发如下。点击会弹出公司信息窗口。Private Sub M公司信息_Click() 公司信息.Show vbModalEnd Sub “基本信息”菜单下的“供应商信息”子菜单的Click事件的程序代码如下。点击“供应商信息”会弹出供应商信息窗口。Private Sub M供应商_Click() 供应商.Show vbModalEnd Sub “维护设置”菜单下的“换用户登录”子菜单的Click事件的程序代码如下。点击“换用户登录”会弹出换用户登录窗口。Private Sub M换用户登陆_Click() 启动登陆对话框 Dim fLogin As New frmLogin fLogin.HelpContextID