数据库课程设计论文(仓储管理系统).docx

上传人:小飞机 文档编号:1944875 上传时间:2022-12-27 格式:DOCX 页数:26 大小:162.54KB
返回 下载 相关 举报
数据库课程设计论文(仓储管理系统).docx_第1页
第1页 / 共26页
数据库课程设计论文(仓储管理系统).docx_第2页
第2页 / 共26页
数据库课程设计论文(仓储管理系统).docx_第3页
第3页 / 共26页
数据库课程设计论文(仓储管理系统).docx_第4页
第4页 / 共26页
数据库课程设计论文(仓储管理系统).docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数据库课程设计论文(仓储管理系统).docx》由会员分享,可在线阅读,更多相关《数据库课程设计论文(仓储管理系统).docx(26页珍藏版)》请在三一办公上搜索。

1、目录一 绪论11.1 课题背景及现状11.2 开发工具介绍1二 需求分析2三 概要设计5四 逻辑设计7五 详细设计9六 测试结果21七 小结21参考文献25一 绪论1.1 课题背景及现状软件定义:仓库管理系统在当今时代,随着社会,技术,尤其是计算机的发展,人工智能已经成为时代的需求,而纯人工已经成为过去。在这样一个背景下!仓库的存储作为一个时代的产物,信息化,智能化也成为必须了。同时开发一个仓库管理系统也变得紧迫的需要。仓库管理系统用于对企业出入库的日常管理,是一套高效的信息管理系统。它能够为企业提供先进的业务信息管理解决方案,改进传统的工作方式,提高企业所经营物品的供、销、存的运转效率,缩短

2、管理周期,减少因为重复操作而带来的人为差错,减轻管理人员的工作强度、降低管理成本。软件定义:从客户的需求开始,从对客户的需求的分析,到数据流程图完成,然后,概念设计,E-R图的设计,接下来,将E-R图转换成关系模型,当然这个关系模型要满足一定的范式地 要求,这样要是根据实际的情况决定的!再接下来,设计数据库,进行详细的设计,根据客户的需求选择是做成c/s,还是b/s形式!最后是软件的测试和维护。这个整个的过程是一个完整的流程,这个过程被称为软件开发。成品为软件。1.2 开发工具介绍 这次项目主要是使用Eclipse和Microsoft SQL Server2000。Sqlsever2000 数

3、据开发工具! Sqlsever2000是微软公司开发的智能的,大型的实用型的数据库设计工具!目前在市场上大部分公司用的是oracle,bb2等数据开发工具。因为我们课堂上介绍的是Sqlsever2000,我就选用了它。Eclipse是开放源代码的项目,其本身是用Java语言编写。Eclipse是我们在学习Java中使用过的工具,它的功能比较完整!乍一看起来,Eclipse的界面有点象JBuilder,但实际操作进程中会发现它更象IVJ,毕竟开发Eclipse的主导用量是开发IVJ的原班人马。Eclipse开发环境和IVJ一样,Eclipse开发环境被称为Workbench,它主要由三个部分组成

4、:视图(Perspective),编辑窗口(Editor)和观察窗口(View)。在下面的介绍中,希望读者能知道Java视图,Java包浏览窗口,资源视图,资源浏览窗口等区别(其实最主要的也就是要区别视图和窗口)。Asp运行在装有Microsoft的IIs操作系统中,所以创建Asp应用程序之前,需要安装相关的操作系统和Web服务器。二 需求分析2.1目标设计:仓库管理系统需要实现的功能相对来说比较简单,最重要的是物品的入库操作、出库操作和提货单的管理,对供应商、提货单位的管理功能,以及对库存中物品数目的管理功能。另外,作为一个完整的系统,为了保证系统的安全,还有必要对使用本系统的用户进行身份的

5、验证以及权限的管理等。仓库管理系统实现的功能如下:1.系统的用户登录以及身份验证系统用户进入系统需要经过身份验证。系统用户在登录系统以后,在不同页面跳转浏览时的身份验证。2.库存管理功能库存信息的管理,包括添加仓库、查看仓库、删除仓库。提货单为信息的添加。货物类别信息的添加。物品信息的添加。提货单的管理。3.权限的管理功能在本系统中,将权限分为俩种,一种为超级管理员权限,该权限可以管理系统中定义的所有仓库;而另一种为普通管理员权限,该权限只能管理分配给他的某个仓库。2.2数据流图:商品入库数据流图:商品入库登记产生入库表更新数据库处理事务仓库管理员入库单供应商 事务事务库存清单商品出货数据流图

6、: 商品出库登记更新数据库处理事务 采购员产生出库表出库单仓库管理员 事务事务库存清单商品订货数据流图: 订货信息产生订货表处理事务更新数据库采购员仓库管理员 事务 事务 订货单库存清单2.3数据字典:1:名字: 用户表 描述: 记录所有可以登录该系统的用户名、密码和其他相关数据; 定义: 用户名+密码+备注+IP地址; 位置: 输出到打印机;2:名字: 供应商信息表 描述: 此表记录所有供应商的信息。; 定义: 供应商名称+供应商编号+备注; 位置: 输出到打印机;3:名字: 提货单位信息表 描述: 该表是指某物在出库时提货者的信息;、 定义: 使用编号+名称+备注; 位置: 输出到打印机;

7、4: 名字: 仓库信息表 描述: 一个企业可能会有许多仓库,就存放在这个表中; 定义: 仓库编号+仓库名称+备注; 位置: 输出到打印机;5:名字: 物品类别信息表 描述: 该表记录仓库中具体的物件名称和其他相关的信息; 定义: 类别名称+类型编号+所属仓库名 位置: 输出到打印机;6. 名字: 物品信息表 描述: 此表记录仓库中具体的物件名称和其他相关的信息; 定义: 仓库编号+类型编号+品名编号+品名物品的名称+计量单位+当前库存数+当前库存总金额+最大储存量+最小储存量+储存地点+规格+货号+货名; 位置: 输出到打印机;7. 名字:入库/出库明细表 描述: 该表记录所有各个仓库的入库、

8、出库的记录,每当进行出库或者入库操作是,就会有一条记录插入该表; 定义: 编号+记录日期+种类+号数+收入数量+收入单价+收入金额+发出数量+发出单价+发出金额+结存数量+结存单价+结存金额+品名编号+仓库编号+供应商编号+接受这编号+剩余数量 位置: 输出到打印机;三 概要设计这一设计阶段是在需求分析的基础上,设计出能够满足需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。本实例根据上面的设计规划出的实体有员工实体、供应商实体、提货单位实体、仓库实体、物品类别实体、物品信息实体、出库/入库实体。各个实体的E-R图及其关系描述如下。1.员工实体E-R图(用户编号,用户名,密码,

9、是否在线,备注,IP地址)UserUser-idusernamepasswordisonliememoip2.供应商实体E-R图(供应号,供应商名称,备注)ProvideProvider-idProvider-namememo3.提货单位实体E-R图(使用编号,使用名称,备注)UsesUses-idUses-namememo4.仓库实体实体E-R图(仓库编号,仓库名称,备注)StorageStorage-idStorage-namememo5.物品类别实体E-R图(类型名称,类型编号,该类别所属仓库)Typetype-nameType-idin-storage6.物品实体E-R图(仓库编号,类

10、型编号,品名编号,物品名称,记量单位,当前库存数,当前库存总金额,最大储存量,最小储存量,储存地点,规格,货号,货名)StockStorage-idnoType-idName-idunitNow-stocnow-stocmaxrulehmaddressmin7.入库/出库实体E-R图(编号,记录日期,种类,号数,收入数量,收入单价,收入金额,发出数量,发出单价,发出金额,结存数量,结存单价,结存金额,品名编号,仓库编号,供应商编号,用户编号,剩余数量)DetailIn-pricerqzlhsIn-numIn-sumidOut-sumOut-priceOut-sumNow-priceNow-su

11、mName-idProvider-idStorage-idLeft-numUses-id四 逻辑设计 4.1基本表关系:1.员工 (用户编号,用户名,密码,是否在线,备注,IP地址)2.供应商(供应编号,供应商名称,备注)3.提货单位(使用编号,使用名称,备注)4.仓库(仓库编号,仓库名称,备注)5.物品类别(类型名称,类型编号,该类别所属仓库)6.物品(仓库编号,类型编号,品名编号,物品名称,记量单位,当前库存数,当前库存总金额,最大储存量,最小储存量,储存地点,规格,货号,货名)7.入库/出库(编号,记录日期,种类,号数,收入数量,收入单价,收入金额,发出数量,发出单价,发出金额,结存数量

12、,结存单价,结存金额,品名编号,仓库编号,供应商编号,用户编号,剩余数量)4.2 数据库截图员工:供应商:提货单位仓库信息:物品类别信息:物品信息:入库/出库:前5个关系达到了BC范式,后俩个达到3范式。4.3定义权限:管理:用户表user中的字段in_storage意思是所属仓库,在表storage中存放着仓库,且表中字段storage_id就是仓库的编号,in_storage与之对应,而storage_id是自动编号产生的,所以不会有小于等于0的数字的,根据这样,当in_storage值为0时,即不属于任何仓库的用户,即他们可以管理任何仓库,也即可以称之管理员了!查看:用户表user中的字

13、段viewother是查看其他的仓库,一个用户是否可以查看全部的仓库首先看他是否可以管理全部仓库,如果可以就可以查看其他的仓库,如果不可以,即只能管理一个仓库,那么就要看字段viewother的值为什么,如果为“是”那么可以查看其他的仓库,如果为“否”则不能看其他仓库。五 详细设计在该系统中主要由基本信息维护模块、库存管理模块和安全管理模块3大模块组成。 库存管理系统基本信息维护模块库存管理模块安全管理模块 1 系统功能模块图基本信息维护模块员工信息仓库信息管理 2 基本信息模块图库存管理模块入库管理出库管理提货单管理 3 库存管理模块安全管理模块权限管理用户管理 4 安全管理51功能说明:1

14、.登录:登录模块在文件default.asp中,即仓库的首页中,在登录时需要填写“用户名、密码、选择仓库”三项,如果用户名和密码有至少一个不正确时,就提示“用户名或密码错误”。2、分类查看库存 - type.asp因为该界面使用一种目录树的结构概念,进入时显示总分类的类别,总分类下也可直接创建物品,但一般都不会有。3、浏览库存(管理库存) - brow.asp他适合于规模小,分类简单的仓库,而且在上面将该仓库的所有分类名称列出来,可以很方便的选择哪个分类来查看该类别下的所有库存。4、今日库存报表 - report.asp日报表是将今日所有仓库中的物品根据出、入库情况进行填充报表表格,他可以自动

15、计算某样物品今日的所有出库数量、出库金额、入库数量、入库金额、当前库存数、当前库存金额。5、查看全部库存 - all.asp 只有在这里才可以一览全部仓库的情况,可以很方便的选择某个仓库再选择其下的某个类别进行查看,或查找时,是针对全部仓库来找的,要进入此页面,必须该用户具有可以查看其他仓库的权限。6、修改密码 - chkpass.asp 修改密码是让用户在线时的进行修改自己的密码,要先以自己的用户名和密码登录进去,新密码和校验密码一致时才可以正确修改密码。7、查看在线人数online.asp可以查看当前在线的人数,以及他们的用户名,登录时间和其IP地 址。8、新增用户 - newuser.a

16、sp 在线式的进行增加用户名,这种方式具有权限继承性,即只有可以管理全部仓库的才可以分配给新用户这种权限,只有可以查看全部仓库的才可以分配给新用户这种权限。9、新增分类 typemanage.asp只是新增总分类下的类别。 Newtype.asp是在树型结构中进行的动态分类,是增加当前类别下的 新类别。10、新增仓库 - storagemanage.asp 对表storage进行增加仓库名称,该程序一个很大的优点就在于此,只要新加入一个仓库,这个仓库在使用时与其他仓库的使用没有任何关系,只是他们可以放在一起进行查看,是他们唯一的联系。11、新增供应商 - providermanage.asp

17、对每一个进库的物品,都需要指明供应商是谁,不然不就搞出了三无产品嘛?对供应商的管理还有待完善。12、新增用处 - usesmanage.asp 用处是相对供应商的,既然货有源,那么使用也得有个对象,要从这里反应出,某物品从哪里来,又走象哪里了。13、新增品名 - newname.asp 对当前仓库当前类别下新增物品,用来描述物品信息。当新增某物品时还需对他进行入库、出库等操作,该物品才算有意思。14、入库操作 - in.asp 即收入,对仓库的一个进的过程,需要输入物品的数量、单价、摘要、供应商等信息。当数据全正确确定可以保存时,程序先将全部的已有库存记录逐个重新誊写一遍至当前日,然后再新增一

18、个记录表示现在入库的数据,并重新统计现在的库存数量,并写到stock中表示现有的库存情况,并且重新改写“记帐记录标志jz_log”,用来标记最后一个操作,置全部记录为0,并将刚誊写的及新增的记录为1,只在list.asp显示明细中用颜色块显示时使用,清楚的表示当前的库存情况。15、出库操作 - out.asp 出库与入库相反,在出库时先将出库请求的数量与现有库存数量比较,如果小于等于库存数,则可以出库,如果大于库存了,则提示不能出库,以save_out.asp来检测数据。当可以出库也是将全部已有库存记录逐个重新誊写一遍至当前日,产生新的数据,然后根据具体出库的数量根据“先入先出”原则从最早一批

19、开始出库,如果第一批数量不足,再继续出第二批,第二批不足,再继续出第三批,依次类推,直到全部达到出库请求的数量。16、退出 - logout.asp 在使用完后,一定要使用退出来结束工作,一来是注册表user使自己的名称已经下线,并记录下线时间,二来为了安全起见。5.2功能实现:首页一 基本信息维护模块:1. 新增员工:页面设计:本系统添加员工页面如图所示,在该页面上管理员需要输入用户、员工登录密码和分配给该员工管理的仓库并且需要给该员工赋予一定的权限。实现方法:当用户填写表单后,首先把填写的结果交给指定的程序检查,这里采用在服务器端检查填写结果的合法性。如果填写结果合法,则将表单内容交给ne

20、wuser.asp页面,负责将用户信息写入数据库中。newuser.asp文件的核心代码如下:if request(name)= then msg=msg+请输入用户名!end ifif request(password)= then msg=msg+请输入密码!end ifif request(confirm)= then msg=msg+请输入确认密码!end ifif request(password)request(confirm) then msg=msg+密码和确认密码不一致!end ifif request(selstorage)=0 and request(manage)= t

21、hen msg=msg+隶属仓库和是否可以管理其他仓库至少选择一样!end ifsql=select * from user where username=&session(username)&rs.open sql,connif rs(in_storage)0 and request(manage) then msg=msg&rs(username)&本身就没有管理其他仓库的权限,所以这里就不能选!end ifif rs(viewother)=False and request(view_other) then msg=msg&rs(username)&本身就没有查看其他仓库的权限,所以这里

22、就不能选!end ifrs.closeif msg then showerror(msg)end ifsql=select * from user where username=&request.form(name)&rs.open sql,conn,3,2if not rs.eof then showerror(该用户名已经存在,请重新选用另一个试试!)else rs.addnew rs(username)=request.form(name) rs(password)=request.form(password) rs(memo)=request.form(memo)if request.

23、form(manage)= then if request.form(selstorage)0 then rs(in_storage)=request.form(selstorage) else rs(in_storage)=session(storage) end ifelse rs(in_storage)=0end if if request.form(view_other)= then rs(viewother)=Falseelse rs(viewother)=Trueend if rs.update ShowSuccess(数据已经成功保存!)end ifrs.closeelse%2.

24、查看/删除员工信息页面设计:若管理员单击了“查看用户信息”超链接,将会进入如图所示的页面,在该页面上列出了所有使用该系统的用户名称、所管理的仓库、最近登录时间等信息、实现方法:查看用户信息页面使用的是用户信息表,应用该表的username用户名、in-storage所在仓库、login-time登录时间、memo备注等信息。实现文件viewuser.asp的代码段如下: 用户信息 姓名 所属仓库代码 最近登录时间 备注操作 a href=deluser.asp?id=删除该用户二 仓库信息管理(本模块实现仓库信息的新增和查询处理)1. 新增仓库对于实际的应用,企业或者是单位的仓库肯定不止一个,

25、因此这就要求系统必须具有增加仓库的功能。这个仓库在使用时与其他仓库的使用没有任何关系,只是可以把它们放在一起进行查看,这是他们唯一的关系。效果图如下: 实现代码: %if Request.ServerVariables(REQUEST_METHOD)=POST thenif request.form(storagename) thensql=selec* from storage where storage_name=&request.form(storagename)&rs.open sql,conn,3,2if rs.eof then rs.addnew rs(storage_name)=

26、request.form(storagename) rs(memo)=request.form(memo) rs.update ShowSuccess(数据已经成功保存!)else showerror(该仓库已经存在,请重新输入)end ifrs.closeelse showerror(请输入仓库名称)end ifelse%2. 查看仓库信息 三 库存管理1. 入库管理入库即操作,是对仓库的一个进的过程。需要输入商品的数量、单价、摘要、供应商等信息。故该页面的主要功能是显示该物品的一些基本信息如物品名称、当前的库存数目和单位等信息,并且收集客户端输入的待入库物品的数量、单价、供应商等信息。%当

27、用户填写完所需的信息后,单击“添加”,服务器将会把用户信息传给save-in.asp文件,其核心代码: if msg then showerror(msg)end ifsession(selprovider)=request(selprovider)sql= update detail set jz_log=0 where name_id=&session(name_id)& and storage_id=&session(storage)rs.open sql,connsql=select * from detail where name_id=&session(name_id)& and

28、storage_id=&session(storage) & and left_num0 order by idrs.open sql,conn,3,2if not rs.eof then sql=select * from detail rs3.open sql,conn,3,2do while not rs.eof rs3.addnew rs3(jz_log)=0 rs3(storage_id)=session(storage) rs3(provider_id)=request(selprovider) rs3(name_id)=session(name_id) rs3(rq)=date(

29、) rs3(zl)=request(zl) rs3(hs)=request(hs) rs3(zy)=request(zy) rs3(now_num)=rs(now_num) rs3(now_price)=rs(now_price) rs3(now_sum)=rs(now_sum) rs3(left_num)=rs(left_num) rs3(jz_log)=1 rs3.updaters(left_num)=0 rs(jz_log)=0 rs.update rs.movenextlooprs3.closeend ifrs.closesql=select * from detailrs.open

30、sql,conn,3,2rs.addnewrs(jz_log)=1 rs(storage_id)=session(storage)rs(provider_id)=request(selprovider)rs(name_id)=session(name_id)rs(rq)=date()rs(zl)=request(zl)rs(hs)=request(hs)rs(zy)=request(zy)rs(in_num)=request(in_num)rs(in_price)=request(in_price)rs(in_sum)=rs(in_num)*rs(in_price)rs(out_num)=0r

31、s(out_price)=0rs(out_sum)=0rs(now_num)=rs(in_num)rs(now_price)=rs(in_price)rs(now_sum)=rs(in_sum)rs(left_num)=rs(in_num)rs.updaters.closeupdate_stockresponse.redirect list.asp?id=&session(name_id)2. 出库管理如果用户通过了验证,登录到管理页面,并且库存充足就可以进行出库操作了。该页面表单的主要作用是收集出库物品的数量、提货单位等基本的信息。其核心代码为:%CheckLogingetStorage(s

32、ession(storage)if request(id) thensession(name_id)=request(id)sql=select * from stock where name_id=&request(id)rs.open sql,conn,3,2if not rs.eof then session(name)=rs(name) session(now_stock)=&rs(now_stock)& &rs(unit) rs.close gettypepath response.write - &session(name)& else showerror(没有找到记录!)end

33、if%3.提货单管理四 用户管理1. 用户登录出于对系统的安全考虑,需要给系统使用者提供一个登录系统的入口。该系统有一个登录系统的入口,要求系统使用者输入相应的用户名和密码,并根据需求分析分配出俩种权限-仓库管理员权限和系统管理员权限。在该登录页面,用户输入完自己的用户名和密码,并在下拉列表中选择登录的仓库,单价OK按钮后,表单将会被提交到loginchk.asp进行用户名和密码的验证。其部分处理代码如下:0 and rs(in_storage)-selstorage=0) or rs(in_storage)=0 then session(userlogin)=true session(sto

34、rage)=selstorage session(username)=user response.cookies(adminok)=true2. 用户修改密码%if Request.ServerVariables(REQUEST_METHOD)=POST thensql=select * from user where username=&session(username)& and password=&request.form(old_pass)&rs.open sql,conn,3,2if not rs.eof then if request.form(new_pass)=request.

35、form(confirm_pass) then rs(password)=request.form(new_pass) rs.update showsuccess 修改成功! else showerror 错误! end if六 测试结果1.新增用户:2.新增物品类别:3.新增供应商类别4.新增仓库5.新添物品6.货物清单7.供货商信息8.货物清单七 小结 完成这个超小型的仓库管理系统之后,的确有很多的感想。 最深的感触就是:学习软件专业,必须去实践,否则一切学习只能是纸上谈兵。 首先:开始的时候,我总是在想我的学习还是不够,这个仓库管理系统该怎么弄呢?总是徘徊之中,不知道从何处下手。 然后:

36、我去图书馆找到一本关于数据库开发的书,我开始学习VBScript编程,虽然我们没有学过,但是因为有了学习语言的基础,还有足够的时间,我开始按照那本书上教的一步步做,并且开始了对这个仓库管理系统的思考,首先我对这个系统的界面进行了一定的思考。也查询了许多的学习资料。 与此同时,软件工程,数据库理论的学习,已经有了一定的火侯了,软件工程,从软件工程的角度更深度的考虑了,整个软件的流程!和软件开发的思路,这使得我的思路一下子就被打通了。数据库的理论学习中,我学到了E-R图,数据库的设计过程:需求分析,概要设计,逻辑设计,详细设计,数据库的维护。这与我在软件工程当中学习的十分的吻合! 最后:我开始我的

37、制作,我是一边制作,一边思考,在制作的过程当中,我碰到了相当多的问题,我通过internet,通过其他同学,通过老师,将问题一个一个吃掉。那种快乐真的难以忘怀!当我解决了一个重要的问题的时候我们的心里久久难以平静!到了最终我还是有了小小的成绩。 在期间,我碰到的很多的问题,例如:1;将数据库的表的数据取出体现在系统界面上。我花了好长的时间。2;在配置IIs时也出了问题,按照书上的做,总是有问题,后来找了高手帮我解决了。3; 满足各种需求的查询,我也考虑了很多的查询需求。最后还是较满意。 我的这个软件只是小小的试试,学习的一个过程,如果要真正的完善这个软件还有许多的事情要去做。在Web应用中“回话状态”对于跟踪保存用户的操作有着至关重要的作用。在本仓库管理系统的开发中,由于用户登录系统以后需要在不同的页面 切换,而在这些页面中都需要显示该用户登录的仓库,因此,把仓库的编号保存到Session范围中,就可以方便地在不同的页面中引用它。但是在带来方便的同时,也付出了性能上的代价。当大量用户访问时,将会占用大量宝贵的服务器内存。在实际应用中还是应该尽量少用Session对象来保存变量。例如:1;我还没有时间进行当客户使用时候,输入破坏了数据库完整性,给客户与提示。2;还有临时表的建立。3;数据存储过程的建立,索引得 建立,4;各种完善的,根据客户需求的查

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号