仓库管理系统典型数据库.doc

上传人:peixunshi0 文档编号:38559 上传时间:2025-07-09 格式:DOC 页数:34 大小:1.20MB
下载 相关 举报
仓库管理系统典型数据库.doc_第1页
第1页 / 共34页
仓库管理系统典型数据库.doc_第2页
第2页 / 共34页
仓库管理系统典型数据库.doc_第3页
第3页 / 共34页
仓库管理系统典型数据库.doc_第4页
第4页 / 共34页
仓库管理系统典型数据库.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、河南城建学院典型数据库课程设计报告课程名称: 典型数据库课程设计 设计题目: 仓库管理系统 指导教师: 班 级: 学 号: 学生姓名: 同组人员: 成 绩: 评 语: 计算机科学与工程学院2016年1月10日 典型数据库课程设计报告 - 33 -目 录第1章 概述21.1 选题的背景与意义21.2 相关技术分析3第2章 系统功能设计42.1 系统总体结构设计图42.2 系统功能模块41.2.1 登录模块41.2.2 基本信息管理模块51.2.3 货物信息管理模块51.2.4 仓库货物管理模块61.2.5 查询信息信息模块61.2.6 仓库警报功能模块71.2.7 信息导出功能模块7第3章 数据

2、库设计83.1 需求分析83.1.1 数据流程图83.1.2 数据字典103.2 数据库概念结构设计123.2.1 E-R图设计方法123.2.2 全局E-R图123.2.3 局部E-R图133.3 数据库逻辑结构设计153.4 安全性和完整性设计17第4章 数据库维护与查询184.1 序列184.2 触发器18第5章 UI设计与代码实现205.1 UI设计205.1.1 仓库管理员205.1.2 系统管理员225.2 代码实现245.2.1 仓库管理员245.3.2 系统管理员28第6章 结束语31参考文献33第1章 概述1.1 选题的背景与意义1、背景:随着信息技术的发展和国内外互联网技术

3、应用水平的逐步提高,在企业管理过程中,传统的工作方式和管理模式已经难以满足现代社会的必然需求,实现企业现代化综合管理已经是提高国家政府机关和企事业单位各部门工作效率、规范化管理的必然发展趋势。随着经济全球化、信息网络化和物流现代化进程的全面推进,仓储供需量呈现爆炸式的增长,传统的仓库管理模式和管理系统,已根本满足不了现代社会全面信息化的严峻挑战,如何加强以信息化为指导的现代仓库管理技术已成为物流现代化走向成功的有效途径,如何将互联网技术和仓储物流的信息化技术紧密结合起来,开发出适应当前社会发展需要的、先进的现代化物流仓储管理技术平台,是现代化物流发展技术中一项基础的、又是很关键的、特别值得研究

4、的子课题。ASP技术是面向对象编程的技术,可实现复杂数据库的操作;用ASP开发的Web应用程序安装在网络服务器上,运行在网络服务器上,因而ASP源程序的隐密安全系数性高;而ASP又是基于B/S模型架构的、开放式的Web服务器的应用程序开发技术,因此,采用ASP技术开发运行在服务器端的仓库管理信息系统平台是众多软件设计与开发人士的首要选择。本文比较全面地阐述了与ASP、ADO、B/S模式有关的理论技术,为构建Web仓库管理信息系统提供了必要的理论支持。首先分析了ASP技术的优势、特点及其工作原理,剖析了ASP工作的核心内涵,搭建了ASP技术的工作环境,为开发系统功能提供的必需的技术运行环境;分析

5、了目前Web数据库最佳访问组件ADO技术的对象与数据集之间的关系,直接搭建了Web应用程序与数据库访问的联系梁;根据现代仓储市场的需求特点,对拟开发系统的功能进行了细致地分析与设计,建立了仓储数据管理的E-R模型图、数据库结构,分析了B/S架构模式的三层框架,构建了以该框架为模型的仓库管理信息系统,重点分析介绍了有关功能模块的ASP实现过程,成功地实现了基于ASP运行环境的仓库管理信息系统的开发与设计;并对本系统的各项功能进行了测试与分析,发现系统运行状态良好,人机交互友好,程序设计实现合理,达到了项目设计的目的和要求。最后,对本次的项目设计进行了总结与展望,发现了系统的构架模式关系着程序开发

6、效率,对开发系统有着重要的影响意义,好马配好鞍,优秀的软件必然有优秀的构架。作为软件开发设计人员既要努力学好软件技术又要重视相关模式的学习,这样,就能达到事半功倍的效果,设计开发出更加优秀的应用系统来。2、 意义 仓库管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护,以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库,而对于后者则要求应用程序功能完备、易使用等特点。经过分析,我们使用Microsoft公司的数据库开发工具SQL Server2008和Microsoft Visual Studio 2010,利用其提供的各种面向对

7、象的开发工具和数据库的结合比较方便,我们开发了这套库存管理系统,包括仓库管理、入库管理、出库管理、库存管理以及查询等模块。仓库管理可用于配置企业的仓库信息;出库、入库管理可以使管理人员管理各种类型的货物进出;库存管理可提供便捷的库存查询管理。仓库管理系统实现了企业对货物的管理,用来控制存储货物的数量,以保证稳定的货物支持正常的运转,但又最小限度地占用资本。它是一种相关的、动态的及真实的库存控制系统。它能够结合、满足相关部门的需求,随时间变化动态地调整库存,精确地反映库存现状,加强库存环节管理,有效地控制货物收发,降低了库存,优化了库存结构;能够及时了解货物状态,全方位的仓库管理可以及时了解货物

8、分布,避免了货物短缺、积压、过期变质,及时了解货物的收发成本,货物数据共享。1.2 相关技术分析 此系统采用了成熟且完善的oracle 11g及Microsoft Visual Studio 2010软件开发工具来进行后台数据库的管理、操作和维护。该软件功能强大,可用性强,完全可以满足我们开发项目的要求。第2章 系统功能设计2.1 系统总体结构设计图系统要具备如下功能:登录界面统一,用户登录系统时进行身份验证,如不是系统用户则禁止登录; 添加新员工时,通过系统管理员进行添加,并能采集员工的基本信息;仓库货品信息的管理,系统包括仓库管理、入库、出库和一些统计查询等几部分组成。仓库管理系统实现对货

9、品信息的管理和总体的统计等,仓库信息,供货单位和操作员信息的查看及维护。仓库管理人员可以浏览、查询、添加、删除等产品的基本信息。图2.1系统功能图2.2 系统功能模块1.2.1 登录模块登录模块可以分为系统管理员登录和管理员登录。如果用户要进行登陆时,系统会进去数据库进行帐号密码匹配,同时也要进行权限匹配,如果匹配成功才可以登录。根据其选择的用户不同,输入不同的用户与密码,接入不同的用户界面,管理不同的界面。图1.2.1登陆模块1.2.2 基本信息管理模块基本信息模块分为仓库基本信息,操作员基本信息,客户基本信息,仓库基本信息又分为管理员管理,提货员管理,采购员管理。图1.2.2基本信息管理模

10、块1.2.3 货物信息管理模块货物信息管理模块分为添加货物信息,修改货物信息,删除货物信息。图1.2.3货物信息管理1.2.4 仓库货物管理模块仓库货物管理模块分为入库操作和出库操作。图1.2.4仓库货物管理1.2.5 查询信息信息模块查询信息管理模块分为查询货物信息,查询仓库信息,查询客户信息。图1.2.5查询信息管理1.2.6 仓库警报功能模块仓库警报功能模块在货物不足时提示。图1.2.6警报功能1.2.7 信息导出功能模块信息导出功能模块分为导出货物信息,导出入库信息,导出出库信息。图1.2.7信息导出功能第3章 数据库设计3.1 需求分析3.1.1 数据流程图图3.1.1顶层数据流图图

11、3.1.2系统数据流图详细设计图3.1.3管理员-货物图3.1.4管理员-入库、出库图3.1.5管理员-客户图3.1.6管理员-仓库3.1.2 数据字典(1)仓库表字段名称数据类型描述Snoint仓库编号,主键Snamevarchar2(10)仓库名称Sadressvarchar2(50)仓库地址Sbignumber仓库大小Anovarchar2(10)管理员编号 外键(2)入库表字段名称数据类型描述GnoInt货物编号 外键Bnoint采购员编号 外键SnoInt仓库编号 外键IdateDate采购日期InumInt采购数量Anovarchar2(10)管理员编号 外键(3)出库表字段名称数

12、据类型描述GnoInt货物编号 外键Pnoint提货员编号 外键Snoint仓库编号 外键Anovarchar2(10)管理员编号 外键Odatedate采购日期OnumInt采购数量(4)客户表字段名称数据类型描述CnoInt客户号,主键CnameVarchar2(10)客户名CtypeVarchar2(10)客户类型CmethodVarchar2(11)联系地址CcodeVarchar2(7)邮政编号CbzVarchar2(50)备注Pnoint提货员编号 外键(5)库存表字段名称数据类型描述GnoInt货物编号 外键Snoint仓库编号 外键KnumInt货物数量Kdatedate清点时

13、间(6)提货员表字段名称数据类型描述PnoInt提货员编号,主键PnameVarchar2(11)提货员姓名Psexvarchar2(3)提货员性别Pmethodvarchar2(11)提货员联系方式Paddressvarchar2(50)提货员联系地址(7)用户表字段名称数据类型描述UnameVarchar2(10)用户名UpassVarchar2(10)密码UgradeInt权限(8)管理员表字段名称数据类型描述AnoVarchar2(10)管理员编号,主键AnameVarchar2(10)管理员姓名AsexVarchar2(3)管理员性别Amethodvarchar2(11)管理员联系方

14、式Aaddressvarchar2(50)管理员地址(9)货物表字段名称数据类型描述Gnoint货物编号 主键Gnamevarchar2(10)货物名称Snonchar(10)仓库编号Gdatedate生产日期Gfactoryvarchar2(10)生产厂家Pnonchar(10)采购员编号Gpricenumber(7,2)货物单价Idatedate入库时间(10)采购员表字段名称数据类型描述BnoInt提货员编号,主键Bnamevarchar2(10)提货员姓名Bsexvarchar2(3)提货员性别Bmethodvarchar2(11)提货员联系方式Baddressvarchar2(50)

15、提货员联系地址3.2 数据库概念结构设计3.2.1 E-R图设计方法 1).属性必须是不可分的数据项。2).属性不能与其他实体具有联系,联系只能发生在实体之间。3.2.2 全局E-R图图3.2.1全局E-R图3.2.3 局部E-R图3.1、仓库-货物-采购员图3.1仓库-货物-采购员3.2、仓库-货物-提货员图3.2仓库-货物-提货员3.3、仓库-货物(存储情况)图3.3仓库-货物(存储情况)3.4、客户-提货员图3.4客户-提货员3.5、系统管理员-采购员图3.5管理员-采购员3.6、管理员-仓库图3.6管理员-仓库3.7、系统管理员-提货员图3.7系统管理员-提货员3.3 数据库逻辑结构设

16、计1、 仓库-货物-采购员(入库)(M-N)Tb_Storage(Sno,Sname,Sadress,Sbig,Ano);Tb_Good(Gno,Gname,Gdate,Gfactory,Gprice,Idate)Tb_InStorage(Gno, Sno ,Idate,Inum,Bno);2、 仓库-货物-提货员(出库)(M-N)Tb_Storage(Sno,Sname,Sadress,Sbig,Ano);Tb_Good(Gno,Gname,Gdate,Gfactory,Gprice,Idate)Tb_OutStorage(Gno, Sno ,Odate,Onum,Pno);3、 仓库-货物

17、存储情况)(M-N)Tb_Storage(Sno,Sname,Sadress,Sbig,Ano);Tb_Good(Gno,Gname,Gdate,Gfactory,Gprice,Idate)Tb_Kc(Gno, Sno ,Knum,Kdate);4、 客户-提货员(N-M)Tb_Client(Cno,Cname,Ctype,Cmethod,Ccode,Cphone,Cbz,Pno);Tb_Picker(Pno,Pname,Psex,Pmethod,Paddress);5、 管理员-仓库(1-N)Tb_Admin(Ano,Aname,Asex,Amethod,Aaddress);Tb_Stor

18、age(Sno,Sname,Sadress,Sbig,Ano);u 仓库/Tb_Storage(Sno,Sname,Sadress,Sbig,Ano);u 入库Tb_InStorage(Gno, Sno ,Idate,Inum,Bno);u 出库Tb_OutStorage(Gno, Sno ,Odate,Onum,Pno);u 客户/Tb_Client(Cno,Cname,Ctype,Cmethod,Ccode,Cphone,Cbz,Pno);u 库存Tb_Kc(Gno, Sno ,Knum,Kdate);u 提货员/Tb_Picker(Pno,Pname,Psex,Pmethod,Paddr

19、ess);u 用户/Tb_User(Uname,Upass,Ugrade);u 管理员/Tb_Admin(Ano,Aname,Asex,Amethod,Aaddress);u 货物/Tb_Good(Gno,Gname,Gdate,Gfactory,Gprice,Idate)u 采购员/Tb_Buyer(Bno,Bname,Bsex,Bmethod,Badress);3.4 安全性和完整性设计1.外键约束:管理员表中作为主键的管理员编号在仓库表中作为外键使用:constraint gly_key foreign key(Ano) references Tb_Admin(Ano)提货员表中作为主键

20、的提货员编号在客户表中作为外键使用:constraint thy_key foreign key(Pno) references Tb_Picker(Pno)货物表中作为主键的货物编号在库存表中作为外键使用:constraint hw_key foreign key(Gno) references Tb_Good(Gno)仓库表中作为主键的的仓库编号在库存表中作为外键使用:constraint ck_key foreign key(Sno) references Tb_Storage(Sno)货物编号,仓库编号,提货员编号,管理员编号在出库表中作为外键使用:constraint hw1_key

21、 foreign key(Gno) references Tb_Good(Gno)constraint ck1_key foreign key(Sno) references Tb_Storage(Sno)constraint thy1_key foreign key(Pno) references Tb_Picker(Pno)constraint gly1_key foreign key(Ano) references Tb_Admin(Ano)货物编号,仓库编号,采货员编号,管理员编号在出库表中作为外键使用:constraint hw1_key foreign key(Gno) refer

22、ences Tb_Good(Gno)constraint ck1_key foreign key(Sno) references Tb_Storage(Sno)constraint cgy2_key foreign key(Bno) references Tb_Buyer(Bno)constraint gly1_key foreign key(Ano) references Tb_Admin(Ano)2.check约束check约束:Bsex varchar2(3) check (Bsex in(男,女), Psex varchar2(3) check (Psex in(男,女), 3.pri

23、mary key 约束 管理员表:Ano varchar2(10) primary key, 仓库表 :Sno int primary key, 采购员表:Bno int primary key, 提货员表:Pno int primary key, 货物表 :Gno int primary key, 客户表 :Cno int primary key,第4章 数据库维护与查询4.1 序列 1.提货员序列create sequence Picker_seqstart with 1001increment by 1 2.采购员序列 create sequence Buyer_seqstart wit

24、h 2001increment by 1; 3.货物序列 create sequence Good_seqstart with 3001increment by 1; 4.仓库序列create sequence Storage_seqstart with 4001increment by 1 5.客户序列create sequence Client_seqstart with 5001increment by 1;4.2 触发器1.提货员触发器create or replace trigger add_Picker_triggerbefore inserton TB_Pickerfor eac

25、h rowbeginif :new.Pno is null thenselect Picker_seq.nextval into :new.Pno from dual;end if;end add_Picker_trigger; 2.采购员触发器create or replace trigger add_Buyer_triggerbefore inserton TB_Buyerfor each rowbeginif :new.Bno is null thenselect Buyer_seq.nextval into :new.Bno from dual;end if;end add_Buyer

26、trigger; 3.货物触发器create or replace trigger add_Good_triggerbefore inserton TB_Goodfor each rowbeginif :new.Gno is null thenselect Good_seq.nextval into :new.Gno from dual;end if;end add_Good_trigger; 4.仓库触发器create or replace trigger add_Storage_triggerbefore inserton TB_Storagefor each rowbeginif :n

27、ew.Sno is null thenselect Storage_seq.nextval into :new.Sno from dual;end if;end add_Storage_trigger; 5.客户触发器create or replace trigger add_Client_triggerbefore inserton TB_Clientfor each rowbeginif :new.Cno is null thenselect Client_seq.nextval into :new.Cno from dual;end if;end add_Client_trigger;第

28、5章 UI设计与代码实现5.1 UI设计5.1.1 仓库管理员1. 登录界面设计登录模块可以分为系统管理员登录和管理员登录。如果用户要进行登陆时,系统会进去数据库进行帐号密码匹配,同时也要进行权限匹配,如果匹配成功才可以登录。根据其选择的用户不同,输入不同的用户与密码,接入不同的用户界面,管理不同的界面。2. 基本信息模块设计基本信息模块包含仓库基本信息,客户基本信息,操作员基本信息。仓库基本信息设置有修改和删除的功能。客户基本信息设置了添加,删除和修改的功能。操作员基本信息设置了修改功能。因为客户信息为常变实体属性,因此设置了添加,修改和删除的功能。仓库信息为不常变实体属性,因此设置了修改和

29、删除属性。操作员因为是管理员,不能修改同一等级权限的信息,因此只给添加了修改基本信息的功能。3. 货物信息模块设计货物信息模块包含对货物信息的添加,货物信息的删除,货物信息的修改对应现实世界的引进新货物,货物信息的更新和清仓处理。4. 出库入库模块设计出库入库模块包含了货物出库和入库模块。对于入库信息来说,当系统开始入库时,先判断货物是否存在,如果不存在的话这直接将货物信息插入库存表,然后在入库表中插入记录,提示入库成功。如果货物存在的话则看对应的仓库是否存在如果存在的话则在原来的货物基础上只更新货物数量提示入库成功,如果仓库不匹配的话则插入该货物信息,然后在入库表中插入记录,提示入库成功。出

30、库信息,当系统开始出库时,先判断货物是否存在如果存在的话则看需要出货的仓库是否存在,如果存在的话再看货物数量是否满足出货数,如果满足则出库成功同时对库存表和出库表进行更新,提示出库成功,否则则出库失败。5. 信息查询模块设计信息查询模块包含货物信息查询,仓库信息查询,客户信息查询。通过对客户表,仓库表和货物表的主键进行匹配唯一的确定一行数据返回GridView进行显示。6. 警报信息模块设计警报信息功能,是当库存中货物数量少于10的时候自动提醒管理员要进行及时的补货,以免货物短缺,造成损失。7. 信息导出模块设计信息导出模块包含了导出货物信息,导出出库信息,导出入库信息功能,方便仓库人员进行报

31、表打印和仓库流水信息。5.1.2 系统管理员1. 管理员信息模块设计管理员信息模块包含对管理员的添加修改和删除的功能,因为仓库管理系统由管理员进行管理,因此当添加管理员信息时,在给管理员表添加基本信息的同时也给用户表中添加了信息,帐号为管理员编号,密码默认为123.2. 采购员信息模块设计采购员信息管理(对采购员信息的添加,修改,删除)3. 提货员信息模块设计提货员信息管理(对提货员信息的添加,修改,删除)5.2 代码实现5.2.1 仓库管理员1. 登录界面登录匹配关键代码protected void Button1_Click(object sender, EventArgs e) var

32、qx = -1 ; if (DropDownList1.SelectedValue.ToString() = 仓库管理员) qx = 1; else qx = 0; OracleCommand mycommand = new OracleCommand(select * from Tb_User where Uname= + this.TextBox1.Text.ToString() + and Upass= + this.TextBox2.Text.ToString() + and Ugrade= + qx, conn); conn.Open(); OracleDataReader recu

33、 = mycommand.ExecuteReader(); if (recu.Read() if (qx=1) SessionAname = TextBox1.Text; Response.Redirect(jbxx.aspx); else if (qx = 0) Response.Redirect(gly.aspx); else Response.Write(alert(后勤处用户名或密码错误!);); TextBox2.Text = ; 2. 基本信息添加客户信息关键代码protected void Button1_Click(object sender, EventArgs e) Ora

34、cleCommand mycomm = new OracleCommand(insert into Tb_Client(Cname,Ctype,Cmethod,Ccode,Caddress,Cbz,Pno) values( + this.TextBox2.Text.ToString() + , + this.TextBox3.Text.ToString() + , + this.TextBox6.Text.ToString() + , + this.TextBox5.Text.ToString() + , + this.TextBox4.Text.ToString() + , + this.T

35、extBox7.Text.ToString() + , + this.TextBox8.Text.ToString() + ), conn); conn.Open(); mycomm.ExecuteNonQuery(); conn.Close(); OracleCommand my = new OracleCommand(select * from Tb_Client where Cname= + this.TextBox2.Text.ToString() + , conn); conn.Open(); OracleDataReader recu = my.ExecuteReader(); i

36、f (recu.Read() Response.Write(alert(添加成功!);); this.TextBox2.Text = ; this.TextBox3.Text = ; this.TextBox4.Text = ; this.TextBox5.Text = ; this.TextBox6.Text = ; this.TextBox7.Text = ; this.TextBox8.Text = ; else Response.Write(alert(添加失败!);); conn.Close(); protected void Button2_Click(object sender,

37、 EventArgs e) /this.TextBox1.Text = ; this.TextBox2.Text = ; this.TextBox3.Text = ; this.TextBox4.Text = ; this.TextBox5.Text = ; this.TextBox6.Text = ; this.TextBox7.Text = ; this.TextBox8.Text = ; 3. 货物信息添加货物信息关键代码 protected void Button1_Click(object sender, EventArgs e) OracleCommand mycomm = new

38、 OracleCommand(insert into Tb_Good(Gname,Gdate,Gfactory,Gprice,Idate) values( + this.TextBox2.Text.ToString() + ,+ TextBox3.Text.ToString()+, + this.TextBox4.Text.ToString() + ,+TextBox5.Text+ ,+TextBox6.Text.ToString()+), conn); conn.Open(); mycomm.ExecuteNonQuery(); conn.Close(); OracleCommand my

39、 new OracleCommand(select * from Tb_Good where Gname= + this.TextBox2.Text.ToString() + , conn); conn.Open(); OracleDataReader recu = my.ExecuteReader(); if (recu.Read() Response.Write(alert(添加成功!);); this.TextBox2.Text = ; this.TextBox3.Text = ; this.TextBox4.Text = ; this.TextBox5.Text = ; this.TextBox6.Text = ; else Response.Write(alert(添加失败!);); conn.Close(); protected void Button2_Click(object sender, EventArgs e) /this.TextBox1.Text = ; this.TextBox2.Text = ; this.TextBox3.Text = ; this.TextBox4.Text = ; this.TextBox5.Tex

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

当前位置:首页 > IT计算机 > 数据库

宁ICP备18001539号-1