《数据库课程设计仓库库存管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计仓库库存管理系统.docx(36页珍藏版)》请在三一办公上搜索。
1、数据库设计课程设计报告设计题目:仓库库存管理系统设计与实现学院名称:信息工程学院专业班级:13计本2姓 名:刘 飞学 号:43目录一.概述3系统开发背景3i系统开发意义3开发运行环境3二 需求与功能分析4基本信息管理4入库管理4权限管理功能5数据流程图5数据字典6$3概要设计9商场库存管理系统功能图9对各部分功能的分析9三 数据库设计10系统存在的实体与属性10系统实体间的联系10画出ER模型图10把ER模型图转换为关系表10 定义主键约束、外键约束13描述每一个基本表关系,体现规范化设计思想13数据库创建SQL脚本145 应用程序设计14数据库表146、系统关键技术实现19存储过程设计19触
2、发器设计20)视图设计207 系统测试21插入测试数据21.增加操作23.修改操作23.删除操作23查询操作248 总结26?1.1系统开发背景生产力的发展以及人的生活就决定了要有琳琅满目的商品,如果仅仅依靠 人工管理好商场里的众多的商品,需要浪费大部分的人力物力,还会造成较高 的人工失误。会出现帐目对不上、商品数量出现差距等等一系列的问题,严重 影响运营和工作人员的工作情绪。这就需要我们开发一个商场资源管理系统来 很大程度上减少这些问题的发生,而且还可以减少资源和不必要的浪费。有计 划而合理的经营商城,方便对商场资源人、物进出的记录及其销售审记,实现 数字化、科学化、信息化管理,提高管理效率
3、,降低经营成本。从而更合理的 利用各种资源。处于社会经济技术快速发展的今天 各种各样的行业竞争日益激烈。行业 不断寻求自身的优势劣势,扬长避短,加强自己的竞争力,力争在新世纪经济 利润的大蛋糕中分得一杯羹。利用商场库存管理系统可以提高商场的运作力, 提高行业的竞争力。1.2系统开发意义商场管理作为计算机应用的一个分支有着手工管理无法比拟的优点(1) .使用本系统可以迅速提升商场的库存管理水平,为降低经营成本,大大提 高商场的运作效率。(2) .提高效益增强商场扩张力提供有效的技术保障。因此开发一套能够为商场 工作人员提提供方便的库存管理系统数据库的设计将是非常必要的。1.3开发运行环境数据库系
4、统:Microsoft SQL server Management Studio程序编写语言:Java程序编辑软件:Eclipse或My Eclipse操作系统要求:Windows 8二需求与功能分析3.1基本信息管理系统用户资料管理用户资料即使用该系统的人员基本信息,包括了库长、库工、采购员、仓库 清算员。各种人员信息又包含其工号、密码、性别、年龄、姓名、职位。使用该 数据库系统时提供其工号和密码登录即可自由进行其相应权限内的操作。当然, 也可以凭借自己的工号密码查询自己的信息,而库长则因为有超级用户的权限, 可以输入员工的编号查询任意员工的个人基本信息和操作记录,也可对员工的信 息进行增、
5、删、改的操作。供应商资料管理供应商资料主要包括商场货物的各家供应商的基本信息,包括供应商号码商 家名称,商家所提供商品名称及数量,商家地址与供货商信誉度。在入库时需要 提供供应商的信息,用户也可通过输入供应商号码来查询相关供应商的基本信息 和它近一年对仓库的供货记录。仓库信息管理仓库信息管理仓库信息仓库的编号、仓库名称、仓库地点、仓库容量现有库 存及所存储商品类别。商品信息管理商品信息包括了商品编号、商品类别、名称、生产日期、保质期、价格和余 量等信息。商品信息管理功能模块可以实现以下功能,添加商品类别、修改商品 类别、删除商品类别、查看商品类别、添加商品信息、修改商品信息、删除商品 信息、查
6、询商品信息。3.2库存管理功能库存操作管理模块可以实现入库管理、出库管理和库存盘点等功能。入库管理入库管理,库存管理员根据库存情况将采购计划反映给采购员,经批准后采 购员将从供应商处订货。当收到提货通知单后,采购员将入库商品清单交至库存 管理员,确定商品准确无误后生成入库记录。入库记录主要包括相关的产品信息、供应商信息、信息、库存管理员即用户信息、涉及的金额和入库时间等。出库管理出库管理,库长接到提货通知后,根据出库计划把已批准的提货商品清单交 给库工,库工根据商品清单完成商品出库,同时生成出库记录。出库记录主要包 括相关的产品信息、仓库信息、用户信息、涉及金额和出库时间等。库存提醒库存警示是
7、指对库存中接近安全库存或超过一定数额的产品进行报警。在产 品信息中,包括产品的合理数量范围和有效期限。当产品的库存数量小于安全库 存时,系统进行缺货提醒,当产品的数量大于系统设定的上限时,系统进行超储 提醒。产品出现缺货、超储、接近或超过有效期限时系统需报警。库存盘点由于人为操作等原因,系统中的库存数据与实际数据之间可能会存在误差。 为保证库存数据的准确性,每隔一段时间就需要对库存进行盘点。通过对库存商 品的盘点生成库存台账。当计划台账与库存台账不匹配时,系统产生库存提示, 仓库管理人员经根据提示进行库存检查,并采取相应措施。3.3权限管理功能普通用户:包括采购员,库工,供应商超级用户:管理员
8、3-43.5顶层数据流图第1层数据流图数据流程图供货单位出库单*取货单位3.637数据字典数据流编号:D1数据流名称:发货单述:供货单位开给仓储部门的发货凭证数据流来源 供应商数据流去向:仓库存储收货部门数据项组成:货物代号+商品名称+数量+金额+时间数据流量:1张/次数据流编号 D2数据流名称:退货单简述:仓储收获部门开给供应商的退货凭证数据流来源:仓储收获部门数据流去向:供应商数据项组成:货物代号+商品名称+数量+时间数据流量:1张/次数据流编号 D3数据流名称:入库单简述:仓储收货部开给存储管理部的入库凭证数据流来源:仓储收货部、数据流去向:存储部数据项组成:货物代号+商品名称+数量+时
9、间数据流量:1张/次数据流编号 D4数据流名称:出库单简述:取货单位或个人开给仓库存储部的出库凭证数据流来源:取货单位或个人数据流去向:仓库存储部门数据项组成:货物代号+商品名称+数量+时间0Pprive商品价格%numericNot null,05.4.2. 仓库表(warehouses)字段名称含义字段类型约束?Wno仓库编号Char (5)Primary keyWname仓库名称Varchar (30)Not null?wplace仓库地点Varchar (100)Not null5.4.3.供应商表(providers)字段名称含义字段类型约束Pdno供应商编号char (5)Prim
10、ary keyPdname供应商名称!Varchar (30)Not nullPdplace供应商地址Varchar (100)Not nullPdphonenum联系方式】Varchar (11)Notnull5.4.4. 供应表(supply)字段名称含义字段类型约束Pdno供应商编号Char (5)外键,引用 providers表的pdno字段:联合主键Pno商品编码Char (5)外键,引用products表的pno字段。联合主键Productiondate生产日期Date联合主键Supplydate供应日期DateNot nullSupplyamount供应量IntNot null
11、,05.4.5. 入库表(storgein)字段名称含义【字段类型约束Pno商品编号Char (5)外键,引用products表的pno字段;联合主键Wno仓库编号Char (5)外键,引用warehouses表的wno字段;联合主键Productiondate生产日期Date联合主键Storgeinamount入库量IntNot nullStorgeintime入库时间DateNot null5.4.6. 出库表(storgeout)0Storgeouttime出库时间DateNot null5.4.7.总库存表(totalstorge)字段名称含义字段类型约束Pno商品编号(Char (5
12、)外键,引用products表的pno字段,联合主键Wno仓库编号Char (5)外键,引用warehouses表的Wno字段,联合主键Storgeupper库存上限IntNot null ,0Storgelower库存下限IntNot null 05.4.8. 价格变动表字段名称含义字段类型约束Pno商品编号Char (5)外键,引用products表的pno字段,联合主键Productiondate生产日期Date联合主键Oldprice变动前价格IntNot null 0!Newprice变动后价格IntNot null 05.4.9. 用户表 users)字段名称含义_字段类型约束Un
13、o用户编号Char(5)Primary keyUname用户名称Varchar (30)Not nullUaccount用户账号Varchar (30)Not nullUpassword用户密码|Varchar (30)Not null5.6定义主键约束、外键约束供应表主键约束、外键约束入库表主键约束、外键约束出库表主键约束、外键约束总库存表主键约束、外键约束价格调整表主键约束、外键约束5应用程序设计数据库表转化为关系模式:1) .商品(商品编号商品名称、保质期、价格)2) .仓库(仓库编号、仓库名称、仓库地点)3) .供应商(供应商编号、供应商名称、供应商地址、联系方式)4) .供应(商品编
14、号、供应商编号、生产日期、供应量)5) .入库(商品编号、仓库编号、生产日期、入库量、入库时间)6) .出库(商品编号、仓库编号、生产日期、出库量、出库时间)7) .商品总库存(商品编号、仓库编号、库存上限、库存下限)8) .商品价格变动表(商品编号、生产日期、变动前价格、变动后价格) 在数据库中创建表,并添加主键和外键约束表一, 商品表create table products(pno char(5) primary key,pname varchar(30) not null,pvaliddatetime int not null check(pvaliddatetime0),pprice
15、 numeric not null check(pprice0);一表二仓库表create table warehouses(wno char(5) primary key,wname Varchar(30) not null,wplace Varchar(100) not null);一表三供应商表create table providers(pdno char(5) primary key,pdname Varchar(30) not null,pdplace Varchar(100) not null,pdphonenum Varchar(11) not null);-表四供应表crea
16、te table supply(pdno char(5) not null, pno char(5) not null, productiondatetime datetime not null,supplydatetime datetime not null,supplyamount int not null check(supplyamount0);一主键约束alter table supply add constraint supply_pdno_pno_pdatetime_pk primarykey(pdno,pno,productiondatetime);一外键约束alter tab
17、le supply add constraint supply_pdno_fk foreign key(pdno) references providers(pdno);alter table supply add constraint supply_pno_fk foreign key(pno) references products(pno);-表五入库表create table storgein(pno char(5) not null,wno char(5) not null,productiondatetime datetime not null,storgeinamount int
18、 not null check(storgeinamount0),storgeintime datetime not null);一主键约束alter table storgein add constraint storgein_pno_wno_pdatetime_pk primarykey(pno,wno,productiondatetime);一外键约束alter table storgein add constraint storgein_pno_fk foreign key(pno) references products(pno);alter table storgein add c
19、onstraint storgein_wno_fk foreignkey(wno) references warehouses(wno);-表六出库表create table storgeout(pno char(5) not null,wno char(5) not null,productiondatetime datetime not null,storgeoutamount int check(storgeoutamount0), storgeouttime datetime not null);一主键约束alter table storgeout add constraint sto
20、rgeout_pno_wno_pdatetime_pk primary key(pno,wno,productiondatetime);一外键约束alter table storgeout add constraint storgeout_pno_fk foreignkey(pno) references products(pno);alter table storgeout add constraint storgeout_wno_fk foreign key(wno) references warehouses(wno);-表七 总库存表create table totalstorge(p
21、no char(5) not null,wno char(5) not null,total int,storgeupper int not null check(storgeupper0),storgelower int not null check(storgelower0);一主键约束alter table totalstorge add constraint totalstorge_pno_wno_pk primary key(pno,wno);#一外键约束alter table totalstorge add constraint totalstorge_pno_fk foreign
22、 key(pno) references products(pno);alter table totalstorge add constraint totalstorge_wno_fk foreign key(wno) references warehouses(wno);一表八价格调整表|create table priceadjust(pno char(5) not null,productiondatetime datetime not null,oldprice int not null check(oldprice0),newprice int not null check(newp
23、rice0);一主键约束alter table priceadjust add constraint priceadjust_pdatetime_pkprimary key(pno,productiondatetime);一外键约束alter table priceadjust add constraint priceadjust_pno_fk foreign key(pno) references products(pno);一表九用户表create table users(uno char(5) primary key,uname varchar(30) not null,uaccount
24、 varchar(30) not null ,upassword varchar(30) not null ,);6、系统关键技术实现存储过程设计7.1.1. 创建一个存储过程 将所有的商品价格都增加一元 create procedure pro_adjustpriceas&beginupdate products set pprice二pprice+1; end;7.1.2. 创建一个存储过程 删除所以的用户信息 create procedure pro_delproductsas begin,delete from users; end;7.1.3. 创建一个存储过程修改商品的保质期cre
25、ate procedure pro_ modifydatetime asbegin update products set pvaliddate=pvaliddate+3;end;(建立进出仓的存储过程入仓:create procedure material_in_prorudan_no int,supplier_no varchar(10),material_no varchar(10),in_data datetime,ru_qty bigint,(supp_pay bigint,staff_no varchar(10),out varchar(20)=0 output asDECLARE
26、 n1 intselect n1=count(material_no) from materialwhere material_no=material_no if (n1=0)beginselect out=此物料不存在,如果要进仓,请先登记新物料信息returnendelsebegininsertintomaterial_invalues(rudan_no,supplier_no,material_no,in_data,ru_qty,supp_pay,staf f_no)update cunhuo set qty=qty+ru_qty wherematerial_no=material_no
27、select out=操作成功!returnendgo出仓:create proc material_out_pro(select qty from cunhuo wherematerial_no=material_no)beginselect out=库存数量不足!returnend-elsebegininsertintomaterial_outvalues(chudan_no,kehu_no,material_no,out_data,chu_qty,kehu_pay,staff_no)update cunhuo setqty二qty-chu_qtywherematerial_no=mate
28、rial_noselect out=操作成功!returnendend触发器设计6.3.1. 创建触发器,限制只能在工作日对该表进行插入操作create trigger tri_products_insert before insert on products beginif to_char(sysdatetime,DY) in(星期六,星期日) then&raise_application_error(-20001,你只能在工作时间周一一至周五 对商品表进行插入操作);end if; end;6.3.2. 创建触发器,限制产品表信息的删除create trigger tri_products
29、_del before delete on products for each rowbeginraise_application_error(-20001,产品表中的信息不能删除);end;6.3.3. 创建触发器,修改products表编号同时修改supply表编号Create Trigger truproducts On products -在 products 表中创建 触发器for Update-为什么事件触发As- 事件触发后所要做的事if Update(pno)begin,Update supply Set pno=From supply br ,Deleted d ,Inser
30、ted i -Deleted和 Inserted 临 时表Where = end视图设计7.3.1.保存商品基本信 息和库存量信息【create or replace view productsdetailasselect p.*, from products p,totalstorge t7系统测试插入测试数据商品insert into products values (p001 ,薯片,8,;insert into products values (p002, A D钙奶,6,2);insert into products values (p003,清风抽纸,24,10);insert i
31、nto products values (p004,益达木糖醇,10,12);select * from products;二菇果消点pnopridmepvaliddat 已ppricepool薯片842p002”钙奶e2p003清风抽纸2410p004益达木橱醇1012.仓库表insert into warehouses values (w001,榆林仓库,榆林); insert into warehouses values (w002,西安仓库,西安); insert into warehouses values (w003,延安仓库,延安); select * from warehous
32、es;J结果_J消息wnownamewplace1二j榆林E库榆林2西安食库西安3延安它库延安供应商表insertintoinsertintoprovidersprovidersvalues(s001,供应商,榆林靖边,110);values(s002,供应商,西安盱眙,078);insertintoprovidersvalues(s003,供应商,延安子长,015);select * from providers;-3结果消息pdnopdnamepdplacepdphionenurn1sD&1供应商揄林旖边57186&1511D2s002供应商西安旺舶0711234567S3sO)3供应商超
33、安子长5718827015供应表,供应商编号,商品编号,生产日期,供应日期,供应量。insert into supply values(s001,p001, 2016-12-25 12:56, 2016-12-28 12:56,80) select * from supply;结果消息pdno pnopradu cticmdatetiniesuppdatetimesuppljmount1 j s&DI pDD-12016-12-2512:56:CD.Cu2016-12-2312:M:uD.uuD SO入库 商品编号 仓库编号 生产日期 入库量 入库时间Insert into storgein
34、values(p001,w001, 2016-08-26 13:45,70,2016-09-15); select * from storgein;结果s消息pnoEQproduGticndatetimestorgein amount storgeintinie1: pD1 j w 即1201GW-2GU:4S:.2C702D1&睥15。伽:皿叩(出库 商品编号 仓库编号 生产日期 出库量 出库时间insert into storgeout values(p001,w001, 2016-09-01 9:42,20, 2016-09-15 1:47);select * from storgeou
35、t;二结果_J消息pnopnoductiQndst etimetongeoutmuiTt storgecuttime1P切1 w0D12016-0)1 00:42: DD.DDD 202014)&-15D1:47:DD.DDD总库存表商品编号仓库编号库存上限库存下限insert into totalstorge values(p001, w001, 1000, 50, 8);select * from totalstorge;结果_J消息pnoWHOtotalstargeupper gtorgelower1| p:D1 !指WDD508价格调整 商品编号 生产日期 变动前价格 变动后价格ins
36、ert into priceadjust values (p001, 2016-09-01 8:08,3);select * from priceadjust结果国消息 propraductiondat etimeoldprice newprice1 3汗2d1D143用户信息insert intousers values(u001,刘飞,12345, 111);insert intousers values(u002,杨昀,253,116);insert intousers values(u001,乔欢,12345, 111);insert intousers values(u001,任宇楷,12345, 111);select * from users;1uDD1i刻飞123451112uDD2杨的25116曲结果I岳己疆uno uname uaccount upassword.增加操作-想商品表中添加一条产品记录insert into products values (p0008,麦兜小面包,12,;select * from products;pnopnamepvaliddatetimep price1pODOS:麦兜小面包1242PDDI薯片843