1、成绩:_数据库原理及应用课程设计课题 库存管理系统 班级 计算机2091班 组长 杨阳(28) 组员 杨阳2011 年 12 月 8日2011 年12月 22日库存管理系统说明书1 绪论库存管理系统可以全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。2 需求说明系统开发的总体任务是实现全面管理仓库中存储的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率。系统功能模块图库存管理系统需要完成的功能主要有:(1)基本信息管理本信
2、息包括客户信息、仓库信息、和用户信息。客户可以分为供应商和购货商两种类型。在产品入库时,需要提供供应商的信息;在产品出库和退货时,需要提供购货商的信息.仓库信息包括仓库编号、仓库名和仓库说明等信息。用户信息包括用户名、密码、员工姓名等信息。基本信息管理模块可以实现以下功能: 添加、修改、删除和查看客户信息;添加、修改、删除和查看仓库信息;添加、修改、删除和查看用户信息;(2)产品信息管理功能模块可以实现以下功能:添加产品类别、修改产品类别、删除产品类别、查看产品类别、添加产品信息、修改产品信息、删除产品信息、查询产品信息。(3)库存操作管理库存操作是由仓库管理员执行,就是把产品放入仓库或把产品
3、从仓库中取出的操作,用专业术语来描述就是入库和出库.库存操作管理模块可以实现入库管理、出库管理和库存管理等功能;入库可以分为采购入库、生产入库、退货入库、退料入库等情况。采购入库指将从供应商处采购的产品入库;生产入库是指将企业自己生产的产品入库;退货入库是售出的产品退货后,将退货产品入库;退料入库是指用于本企业生产的原材料出库后没有完全使用,退回仓库。入库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息。出库可以分为销售出库、退货出库、用料出库等情况.销售出库是指把卖给购货商的产品出库;退货出库是指将本企业用于生产的原材料从仓库中提取到生产线.出库操作需要记录相
4、关的产品信息、仓库信息、客户信息、经办人、涉及金额和出库时间等信息。库存盘点是指对库存产品进行整理,纠正不准确的库存数据.由于人为操作等原因,系统中的库存数据与实际数据之间可能会存在误差。所以每隔一段时间就需要对库存进行盘点,从而保证库存数据的准确性.(4)库存警示管理库存警示是指对库存中接近或超过临界值的产品进行报警.在产品信息中,包括产品的合理数量范围和有效期限。产品数量小于合理数量的下限称为短线;产品数量大于合理数量的上限称为超储.产品出现短线、超储、接近或超过有效期限时都需报警。库存警示管理模块可以实现以下功能:库存产品数量报警;库存产品失效报警。(5)统计查询管理功能统计查询管理模块
5、可以对库存产品进行各个类型的统计和查询,从而使用户能够全面的了解库存情况。库存出入库统计报表;库存产品流水线统计报表。对上述各功能进行集中、模块划分,得到系统功能模块图,如图21。系统流程分析系统流程就是用户在使用系统时的工作过程.系统的工作流程都是从用户登录模块开始,对用户身份进行权限验证,进而对于系统进行管理的.本系统的流程分析图如下:库存管理系统库存操作管理用户信息管理基本信息管理仓库信息管理产品信息管理产品类别管理客户信息管理产品信息管理库存产品统计表入库操作管理出库操作管理库存盘点管理数量报警管理失效报警管理产品出库统计表库存警示管理统计查询管理图2-1 系统功能模块图用户登陆开始失
6、败超过3次读取用户类型退出程序1、 管理自己的用户信息2、 管理普通的用户信息管理自己的用户信息基本信息管理产品信息管理库存操作管理库存警示管理统计查询管理重试失败是成功Admin用户普通用户用户管理模块企业库存管理模块3概念模型设计从上面的信息中规定出的实体有客户实体、仓库实体、产品实体、库存产品实体、产品出库实体、产品入库实体等.由于此库存管理系统中以上的实体都是存在着三元关系,故客户、仓库、产品之间存在的三元关系的E-R下面的图1所示;仓库、产品、库存产品之间存在的三元关系的ER下面的图2所示;客户、仓库、产品出库之间存在的三元关系的E-R下面的图3所示;客户、仓库、产品入库之间存在的三
7、元关系的ER下面的图3所示:客户产品仓库管理客户名称客户编号通信地址联系人客户类型联系电话仓库说明仓库编号仓库名称产品编号产品名称产品类型编号产品规格计量单位有效期参考价格MNP图3-1仓库产品仓库编号仓库名称仓库说明产品名称产品编号产品类型编号计量单位产品规格参考价格存储库存产品产品入库单价产品数量产品存储编号生产日期MNP图32客户产品出库仓库管理客户名称客户编号通信地址联系人客户类型联系电话仓库说明仓库编号仓库名称出库产品编号经办人出库操作类型出库日期出库产品数量MNP图33客户产品出库仓库管理客户名称客户编号通信地址联系人客户类型联系电话仓库说明仓库编号仓库名称入库产品编号经办人入库操
8、作类型入库日期入库产品数量MNP入库产品单价生产日期图344 逻辑设计用户的需求具体体现在各种信息的提供、保存、修改、查询等方面,经调查和分析,针对一般库存管理系统的需求和对系统流程图的分析,设计成如下的逻辑结构。(1)客户信息表Client客户信息表Client用来保存客户信息。表Client的结构如表所示:编号字段名称数据结构说明1Cidint客户编号2Cnamevarchar(50)客户名称3Ctypetinyint客户类型4Contactvarchar(30)联系人5Adderssvarchar(50)通信地址6Postcodevarchar(10)邮政编码7Phonevarchar(
9、30)联系电话8Faxvarchar(30)传真电话9Memovarchar(100)备注信息(2)仓库信息表Storehouse编号字段名称数据结构说明1Sidint仓库编号2Snamevarchar(50)仓库名称3Memovarchar(100)仓库说明(3)用户信息表Users编号字段名称数据结构说明1UserName varchar(40) 用户名2 Pwdvarchar(40) 密码3 User_typetinyint 用户类型(4)产品类别表ProType 产品类别表ProType用来保存产品类别信息,表ProType的结构如图所示:编号字段名称数据结构说明1TypeId int
10、 产品类别编号2TypeNamevarchar(50) 产品类别名称3UpperId int 上级产品类别(5)产品信息表Product产品信息表Product用来保存产品的基本信息.表Product的结构如图所示:编号字段名称数据结构说明1Pidint产品编号2Pnamevarchar(50)产品名称3TypeIdint产品类型编号4Ptylevarchar(50)产品规格5Punitvarchar(10)计量单位6PpriceDecimal(15,2)参考价格7Plowint产品数量下限8Phighint产品数量上限9ValidInt有效期(以天为单位)10AlarmDaysint在到达有
11、效期前几天发出警告(6)入库操作信息表StoreIn入库操作信息表StoreIn用来保存入库操作的基本信息.表StoreIn的结构如表所示:编号字段名称数据结构说明1SidTypeVarchar(20) 入库操作类型2 Pid int入库产品编号3 MakeDateChar(10) 生产日期4PpriceDecimal(15,2) 入库产品单位5Pnum int 入库产品数量6Cid int 客户编号7Sid int 仓库编号8EmpNamevarchar(50) 经办人9OptDateChar(10) 入库日期(7)出库操作信息表TakeOut出库操作信息表TakeOut用来保存出库操作的基
12、本信息.表TakeOut的结构如图所示:编号字段名称数据结构说明1TtypeVarchar(20)出库操作类型2Pidint出库产品编号3PpriceDecimal(15,2)出库产品单位4Pnumint出库产品数量5Cidint客户编号6Sidint仓库编号7EmpNamevarchar(50)经办人8OptDateChar(10)出库日期(8)库存产品信息表ProInStore库存产品信息表ProInStore用来保存库存产品的基本信息如图所示:编号字段名称数据结构说明1SpIdint产品存储编号2Pidint产品编号3PpriceDecimal(15,2)产品入库单价7Pnumint产品
13、数量8MakeDatechar(10)生产日期9Sidint仓库编号5 物理设计1.为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项:(1)Client(Cid)(2)Product(Pid)(3)Storehouse(Sid)(4)ProInStore(SpId)(5)ProType(TypeId)(6)Users(UserName)(7)StoreIn(Cid,Pid,Sid)(8)TakeOut(Cid,Pid,Sid)2。用SQL实现设计实现该设计的环境为Windows 2000 SQLServer 2000.(1)创建数据库create dat
14、abase Storego(2)创建客户信息表 Clientcreate table Client( Cid int primary key CLUSTERED, Cname varchar(50) not null, Ctype tinyint, Contact varchar(30), Address varchar(50), Postcode varchar(10), Phone varchar(30), Fax varchar(30), Memo varchar(100))Go(3)创建仓库信息表Storehouscreate table Storehouse( Sid int pri
15、mary key CLUSTERED, Sname varchar(50) not null, Memo varchar(100))Go(4)创建用户信息表Userscreate table Users( UserName varchar(40) primary key CLUSTERED, Pwd varchar(40) not null, User_Type tinyint not null)Go(5)创建产品类别表ProTypecreate table ProType( TypeId int primary key CLUSTERED, TypeName varchar(50) not
16、null, UpperId int)Go(6)创建产品信息表Productcreate table Product( Pid int primary key CLUSTERED, Pname varchar(50) not null, TypeId int, Pstyle varchar(50), Punit varchar(10), Pprice decimal(15,2), Plow int, Phigh int, Valid int, AlarmDays int)Go(7)创建入库操作信息表StoreIncreate table StoreIn( SiType varchar(20),
17、Pid int, MakeDate char(10), Pprice decimal(15,2), Pnum int, Cid int, Sid int, EmpName varchar(50), OptDate char(10),CONSTRAINT PK_STOREIN PRIMARY KEY ClUSTERED(Cid,Pid,Sid), CONSTRAINT FK_STOREIN_CLIENT FOREIGN KEY(Cid) REFERENCES Client(Cid),CONSTRAINT FK_STOREIN_PRODUCT FOREIGN KEY(Pid) REFERENCES
18、 Product(Pid),CONSTRAINT FK_STOREIN_STORE FOREIGN KEY(Sid)REFERENCES Storehouse(Sid)Go(8)创建出库操作信息表TakeOutcreate table TakeOut( Ttype varchar(20) not null, Pid int, Pprice decimal(15,2), Pnum int, Cid int, Sid int, EmpName varchar(50), OptDate char(20),CONSTRAINT PK_TAKEOUOT PRIMARY KEY ClUSTERED(Cid
19、,Pid,Sid),CONSTRAINT FK_TAKEOUT_CLIENT FOREIGN KEY(Cid) REFERENCES Client(Cid),CONSTRAINT FK_TAKEOUT_PRODUCT FOREIGN KEY(Pid) REFERENCES Product(Pid),CONSTRAINT FK_TAKEOUT_STORE FOREIGN KEY(Sid)REFERENCES Storehouse(Sid))(9)创建库存产品信息表ProInStorecreate table ProInStore( SpId int primary key CLUSTERED,
20、Pid int not null, Pprice decimal(15,2), Pnum int, MakeDate char(10), Sid int)Go(10)创建存储过程实现插入、删除、更新/存储过程实现客户信息表 Client的信息插入CREATE proc Client_insert Cname varchar(50), Ctype tinyint, Contact varchar(30), Address varchar(50), Postcode varchar(10), Phone varchar(30), Fax varchar(30), Memo varchar(100)
21、asinsert into Client values(Cname,Ctype,Contact,Address,Postcode,Phone,Fax,Memo)GO /存储过程实现客户信息表 Client的信息删除create proc Client_DeleteCname varchar(50),as delete from Client where Cname=Cname Go /存储过程实现客户信息表 Client的信息修改create proc Client_Update Cname varchar(50), Contact varchar(30),asupdate Client se
22、t Cname=Cname where Contact=Contactgo/存储过程实现用户信息表Users的信息插入CREATE proc Users_insert UserName varchar(40), Pwd varchar(40), User_Type tinyintasinsert into Users values(UserName,Pwd,User_Type)GO /存储过程实现用户信息表Users的信息删除create proc Users_DeleteUserName varchar(40),as delete from Users where UserName=User
23、Name Go /存储过程实现用户信息表Users的信息修改create proc Users_Update UserName varchar(40), Pwd varchar(40),asupdate Users set UserName=UserName where Pwd=Pwdgo6 实验数据示例对用户的操作(1)注册(register)INSERT INTO Users( UserName, Pwd,User_Type)VALUES(A,888888,1);select from Users在登记操作后,用户得到一个唯一的UserName,可以根据这个UserName来查询和修改大部
24、分的数据。(2)注销(unregister)DELETE UsersWHERE(UserName=A);(3)修改个人信息(update)UPDATE Users Set(UserName=B,Pwd=1,User_Type =1)WHERE(UserName=A);(4)插入信息(ProType)Insert into ProType values(23,产品,农副产品)(5)查询信息(ProType)Select * from ProType 7总结通过本次设计我学习了如何使用SQL Server2000和VC+来创建数据库.此库存管理系统缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序、为采购、销售、和生产提供依据,从而提高企业的经营效率,适用于各大型商场和一些较大的物品管理企业。参考文献1温贤发Visual C+6。0数据库程序设计北京:科学出版社,20042董传银Visual C+6。0数据库编程技术北京:希望电子出版社,20043启明工作室Visual C+ +SQL Server数据库系统开发与实例北京:人民邮电出版社,200413