仓库管理系统数据库设计课程设计delphisqlserver.docx

上传人:牧羊曲112 文档编号:1939538 上传时间:2022-12-27 格式:DOCX 页数:29 大小:1.69MB
返回 下载 相关 举报
仓库管理系统数据库设计课程设计delphisqlserver.docx_第1页
第1页 / 共29页
仓库管理系统数据库设计课程设计delphisqlserver.docx_第2页
第2页 / 共29页
仓库管理系统数据库设计课程设计delphisqlserver.docx_第3页
第3页 / 共29页
仓库管理系统数据库设计课程设计delphisqlserver.docx_第4页
第4页 / 共29页
仓库管理系统数据库设计课程设计delphisqlserver.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

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

1、福 建 工 程 学 院课程设计课 程: 数据库系统原理及应用 题 目: 仓 库 管 理 系 统 专 业: 计算机科学与技术 班 级: 计算机 1 0 0 2班 座 号: 3100305126/3100301225 姓 名: 王 文 杰 / 黄 涛 2012年 6 月 26 日一、系统定义为了管理现代化的要求,建立一个经营、资金、成本与物资的动态数据收集、处理与控制的信息系统。该系统为商品批发商仓库提供各种单项及综合的报表和计划,并实现对当前仓库和货物监控与处理,进行多功能查询。用户可通过网络访问数据库,但需要具备不同等级权限,也需要客户端软件支持。二、需求分析调查用户需求本系统的最终用户为仓库

2、管理员和客户。根据我们日常生活中的经验,结合对仓库管理员及客户的调查,得出用户的下列实际要求:1) 仓库的基本情况仓库管理员管理客户、供应商、商品及仓库的信息。(1)客户的基本信息客户可以自己进行注册,也可以由管理员分配。商场中的每个客户都分配有唯一的编号、名字、地址、电话号码,每个用户可以进行仓库货物信息的查询,但不可以进行修改。(2)供应商的基本信息每个供应商拥有唯一的编号、名称、地址、供应货物及电话号码。(3)货物的基本信息每种货物有一个编号,用供应商编号+仓库号+学号组成,会存放在一个仓库中,货物有唯一的名称,属于一个类型,拥有一定货物存储量,管理员可以对其信息进行修改。(4)仓库的基

3、本信息每个仓库有一个编号,同样有一个名称,一个地址,也拥有一定的容量,可以扩充容量,管理员可以对其信息进行修改。(5)货物查询的基本信息管理员和客户都拥有对货物、仓库查询的权力,而货物查询又分为三种:所有货物、货号查询、货名查询,给出相对应的条件,就可以查询到相关的货物编号、仓库编号、货物名称、类型名称、货物存储量,仓库查询只有所有仓库,给出相应的条件则可以查询到相关仓库编号、仓库名字、仓库地址、仓库容量。(6)出入库的基本信息供应商和客户的每次提供、购买货物都会造成仓库相关货物信息的改变,货物入库时更新货物编号、货物名称、入库时间、货物类型、供应商编号、收购单价、入库总量、仓库编号、客户编号

4、,货物出库时更新货物编号、货物名称、出库时间、货物类型、供应商编号、收购单价、出库总量、仓库编号、客户编号信息。2) 用户对系统的要求通过需求分析,对商品库存进行有效的管理,使之形成完善的应用系统。数据库设计中要合理设置商品信息和库存信息等,用来实现商品信息的新增,修改、删除等功能,使得商家有较详细的数据统计与分析。 基本功能:(1) 登录认证作为一个企业实际应用项目,登录认证是必不可少的。本项目的用户登录管理比较简单,分为管理员和客户登录,管理员和客户有不同的权限。(2) 统计报表统计报表模块包括客户统计、供货商统计、货物统计、仓库统计。各个统计都可以按照各个关键字进行统计查询。(3) 入库

5、管理入库管理主要是管理员对仓库进行进货入库的操作,管理人员通过改功能模块把每天的入库商品明细输入数据库并对商品信息进行修改和删除。该模块支持按货物编号和货物名称、所有货物等关键字查询货物编号、仓库编号、货物名称、类型名称、货物存储量。(4) 出库管理出库管理模块与入货管理模块相似,主要是对货物出库信息进行管理。管理员员通过该功能模块对出库商品进行出库操作。(5) 库存管理库存管理模块主要是对已库存的商品进行操作,包括对商品的仓库信息进行修改。另外,可以按货物编号和货物名称、所有货物对所有货物进行盘点。1.数据流图2.数据项1. 客户数据字典属性名存储代码类型长度备注编号Cnochar5客户编号

6、姓名Cnamechar20客户姓名地址Caddrchar40客户地址电话Ctelchar11客户电话密码Cpwchar10客户密码2.货物数据字典属性名存储代码类型长度备注货物编号Gnochar5货物名称Gnamechar20仓库编号Tnochar53.管理员数据字典属性名存储代码类型长度备注编号M01char5管理员编号姓名Mnamechar20管理员姓名密码PWchar10管理员密码4.供应商数据字典属性名存储代码类型长度备注编号Pnochar5供应商编号姓名Pnamechar20供应商姓名地址Paddrchar40供应商地址货物Pgoodschar6供商供应货物电话Ptelchar11供

7、应商电话5.仓库存储数据字典属性名存储代码类型长度备注货物编号Gno char5仓库编号Snochar5货物名称Gnamechar10类型名称Tnamechar20货物存储量Gnumint4仓库货物存储量6.货物入库数据字典属性名存储代码类型长度备注供应商编号Pnochar5货物名称Gnamechar10货物类型Tnamechar20仓库编号Snoreal4入库总量Innumint4货物入库总量收购单价Inpricereal4货物收购单价入库时间Indatachar20货物入库时间7.货物出库数据字典属性名存储代码类型长度备注货物编号Gnochar5客户编号Cnochar5货物名称Gnamec

8、har10货物类型Tnamechar20出库编号Snoreal4货物出库编号出库总量Outnumint4货物仓库总量售出单价Outpricereal4货物出库单价出库时间Outdatachar20货物出库时间8.仓库数据字典属性名存储代码类型长度备注仓库编号Snochar5仓库名称Snamechar20仓库地址Saddrchar40仓库容量Ssizeint49.货物类型数据字典属性名存储代码类型长度备注类型编号Tnochar5类型名称Tnamechar20类型描述Tdescriptionchar503.数据结构数据结构名组成管理员管理员编号,管理员姓名,密码客 户客户编号,客户名称,地址,联系

9、电话,密码供 应 商供应商编号,供应商名称,供应商地址,货物,联系方式货 物物品编号,物品编号,类型编号仓库仓库编号,仓库名称,仓库地址,仓库面积货物类型类型编号,类型名称,类型描述入 库货物编号,供应商编,货物名称,货物类型,入库总量,收购单价,仓库编号,入库时间出 库货物编号,客户编号,货物名称,货物类型,出库总量,售出单价,仓库编号,出库时间库 存货物编号,仓库编号,货物名称,货物类型,货物总量4.数据流数据流名数据流来源数据流去向组成注册管理员信息管理员管理员信息表管理员注册信息注册客户信息客户客户信息表客户注册信息注册供应商信息供应商供应商信息表供应商注册信息查询客户信息客户管理员客

10、户注册信息查询供应商信息供应商管理员供应商注册信息注销客户信息客户信息表管理员客户注销信息注销供应商信息供应商信息表管理员供应商注销信息修改客户信息客户信息表管理员客户修改信息修改供应商信息供应商信息表管理员供应商修改信息查询货物信息货物信息表管理员货物查询信息货物入库信息客户货物信息表货物入库信息货物出库信息货物信息表客户货物出库信息扩建仓库信息管理员仓库信息表仓库扩建信息修改货物信息货物信息表管理员货物修改信息5.数据存储数据存储名输入的数据流输出的数据流组成客户信息表客户注册信息客户修改信息客户注册信息客户注册信息客户修改信息货物信息表货物入库信息货物出库信息货物入库信息货物出库信息供应

11、商信息表供应商注册信息供应商修改信息供应商注册信息供应商注册信息供应商修改信息管理员信息表管理员注册信息管理员注册信息管理员注册信息库存信息表入库信息出库信息入库信息出库信息入库信息表入库信息货物修改信息入库信息货物修改信息仓库信息表仓库扩建信息仓库删除信息仓库扩建信息仓库删除信息6.处理过程处理过程名输入数据流输出数据流注册客户客户注册信息客户注册信息注册供应商供应商注册信息供应商注册信息注销客户信息客户注册信息客户注册信息注销供应商信息供应商注册信息供应商注册信息修改客户信息客户注册信息客户注册信息修改供应商信息供应商注册信息供应商注册信息查询客户信息客户注册信息客户注册信息查询供应商信息

12、供应商注册信息供应商注册信息货物查询货物信息货物信息货物入库货物信息货物信息货物出库货物信息货物信息仓库扩建仓库信息仓库信息货物修改货物信息货物信息三、系统设计1、概念结构设计1)总E-R图2)货物类型E-R图3)库存实体E-R图3)入库实体E-R图4)出库实体E-R图2、逻辑结构设计客户(编号,姓名,联系方式,地址)管理员(编号,姓名,联系方式,密码)货物(货物编号,货物名称,仓库编号)货物类型(类型编号,类型名称,类型描述)供应商(编号,名称,地址,货物,电话)仓库存储(货物编号,仓库编号,货物名称,类型名称,货物存储量)货物入库(货物编号,供应商编号,货物名称,货物类型,仓库编号,入库总

13、量,收购单价,入库时间)货物出库(货物编号,客户编号,货物名称,货物类型,仓库编号,出库总量,售出单价,出库时间)仓库(仓库编号,仓库名称,仓库地址,仓库容量)3、系统功能模块图4、其它设计图形工具亿图专业流程图、网络图制作工具V 1.6.2(试用版)四、详细设计 数据库中的表、视图、存储过程如下图所示:存储过程、视图、触发器主要sql语句:- 创建存储过程-客户登陆存储过程alter proc proc_Clogincno int,pwd varchar(20), status int outputasselect status=count(*) from customer where cn

14、o=rtrim(ltrim(cno) and cpw=rtrim(ltrim(pwd)if status=1 set status=0-0登陆成功else beginselect status=count(*) from customer where cno=rtrim(ltrim(cno)if status=0 set status=1-1账户不存在else set status=2 -2密码错误end-客户注册 存储过程create proc proc_CregCname varchar(20),Caddr varchar(40),Ctel char(11),pwd varchar(10)

15、,Cno int outputasinsert into customer values(Cname,Caddr,Ctel,pwd)select Cno=Max(Cno) from customer-添加客户 存储过程alter proc proc_AddCustmCname varchar(20),Caddr varchar(40),Ctel char(11),pwd varchar(10)asinsert into customer(cname,caddr,ctel,cpw) values(Cname,Caddr,Ctel,pwd)-客户修改 存储过程create proc proc_Cu

16、pdcno int,Cname varchar(20),Caddr varchar(40),Ctel char(11),pwd varchar(10)asupdate customer set cname=Cname,caddr=Caddr,ctel=Ctel,cpw=pwdwhere cno=cno-管理登陆存储过程alter proc proc_Mloginmno int,pwd varchar(20), status int outputasselect status=count(*) from manager where mno=mno and mpw=rtrim(ltrim(pwd)

17、if status=1 set status=0-0登陆成功else beginselect status=count(*) from manager where mno=mnoif status=0 set status=1-1用户名不存在else set status=2 -2密码错误end-管理注册 存储过程create proc proc_MregMname varchar(20),pwd varchar(20),Mno int outputasinsert into manager values(Mname,pwd)select Mno=Max(Mno) from manager-添

18、加供应商 存储过程alter proc proc_AddProvPname varchar(20),Paddr varchar(40),Ptel char(11),Pgoods char(11)asinsert into provider values(Pname,Paddr,Pgoods,Ptel)-修改供应商 存储过程create proc proc_UpdProvpno int,Pname varchar(20),Paddr varchar(40),Ptel char(11)asupdate provider set pname=pname,paddr=paddr,ptel=ptelwh

19、ere pno=pno-注销客户 存储过程create proc proc_CdelCno intasdelete from customer where cno=cno-注销供应商 存储过程create proc proc_PdelPno intasdelete from provider where pno=Pno-注销管理员 存储过程create proc proc_MdelMno intasdelete from manager where mno=mnoexec proc_Mdel 112-调用存储过程declare a intexec proc_Mlogin 100,110,a o

20、utputprint a-货物入库存储过程alter proc proc_goodsinpno int,gname char(10),Tname char(20),sno int,innum int,inprice moneyasinsert into goods_in(pno,gname,tname,sno,innum,inprice)values(pno,gname,tname,sno,innum,inprice)-货物出库存储过程create proc proc_goodsoutgno int,cno int,gname char(10),Tname char(20),sno int,o

21、utnum int,outprice moneyasinsert into goods_out(gno,cno,gname,tname,sno,outnum,outprice)values(gno,cno,gname,tname,sno,outnum,outprice)- 创建视图-货物视图alter view view_goodsasselect a.gno 货物编号,a.gname 货物名称,d.tname 类型编号,isnull(sum(Innum)-sum(outnum),sum(Innum)数量from good a , goods_in b left outer join good

22、s_out c on b.gname=c.gname,typegood dwhere a.gname=b.gname and d.tno=a.tnogroup by a.gno,a.gname,d.tname-客户视图alter view view_customerasselect cno 客户编号,cname 客户名称,caddr 客户地址,ctel 联系方式from customer-仓库视图alter view view_storageasselect a.sno 仓库编号,sname 仓库名称,saddr 仓库地址,ssize 仓库容量,ssize-isnull(sum(b.innum

23、),0)+isnull(sum(c.outnum),0) 仓库余量from storage a left outer join goods_in b on a.sno=b.sno left outer join goods_out c on b.sno=c.snogroup by a.sno ,sname ,saddr ,ssize -供应商视图alter view view_providerasselect pno 供应商编号,pname 供应商名, paddr 地址,pgoods 供应货物,ptel 联系方式from provider- 创建触发器-禁止删除初始化管理员create tri

24、gger trig_manager100on managerfor deleteasdeclare cnt intselect cnt=count(mno) from deleted where mno=100if cnt0 beginraiserror(无法删除初始化管理员!,16,1) rollback transactionendgoselect * from provider-进货时如果没有过这种货物或者货物类型,则新建alter trigger trig_newgoodAndtypeon goods_infor insertasdeclare cnt1 int,gtype char(

25、20),cnt int,gname char(20),gt intselect cnt1=count(*) from inserted where tname in (select tname from typegood)if cnt1=0 beginselect gtype=tname from insertedinsert into typegood(tname) values(gtype)endselect cnt=count(*) from inserted where gname in (select gname from good)if cnt=0 beginselect gnam

26、e=gname from insertedselect gt=tno from typegood where tname=(select tname from inserted )insert into good(gname,tno) values(gname,gt)endgo-货物不能小于create trigger trig_gooderroron goods_outfor insertasdeclare sum int,gname char(20)select gname=gname from insertedselect sum=数量from view_goods where gnam

27、e=货物名称if(sum-(select outnum from inserted) 0) beginraiserror(货物不足,出库失败!,16,1) rollback transactionendgo-仓库货物不能大于库存create trigger trig_storageylon goods_infor insertasdeclare sum int,sno intselect sno=sno from insertedselect sum=仓库余量from view_storage where 仓库编号=snoif(sum0) beginraiserror(仓库已满,请选择其他仓库

28、!,16,1) rollback transactionendgo五、系统实现与测试1、开发平台和工具选择 本系统已在windox XP下通过测试。开发使用工具为sql server2005+Delphi7 。2、系统测试设计过程中,我们组用宿舍的电脑作为数据库的服务器,这样就可以随时随地的进行开发。刚开始,我们确定了需求,确定了数据库的各种结构,然后通过编码来实现,在实现过程中发现了不少问题,由于要改变需求,所以很多功能不得不从头再实现一次,例如入库功能,必须先查货物表中有没有这种货物的记录等。登录界面:客户注册:主界面:入库界面:出库界面:货物信息、仓库信息、客户信息、供应商信息等界面:管

29、理员管理:供应商管理:客户管理:六、课程设计总结1、设计心得、想法建议通过本次课程设计,我们都熟练掌握了数据库的应用技能。在第一周,我们主要完成了收集整理项目的需求和DFD,并且在DFD的基础上进行数据库概念结构设计,设计出系统的E-R图,确定了各个实体和联系的属性。然后把概念结构转换成数据库的逻辑结构,最后确定了系统的基本功能,划分了模块,并确定了每个模块的功能,进行每个模块的功能设计。一周的时间里,我们不断的分析、总结、归纳,然后又分析、总结、归纳,最后以为需求都确定好了,没想到到了实现时又发生了一些小变动,分析阶段真是任重道远!在第二周,我们主要根据系统的设计进行编码,以及撰写设计报告。

30、在编码时,我们不仅学会了常用的命名规范,还深入学习了数据库实际应用时的安全机制。这些都要感谢三位指导老师的耐心指导!两周的课程设计让我们对数据库有了深入的了解,提高了实际动手能力。同时,我也提出一点建议,建议以后可以让我们到相应的场所去做需求分析。这样可以让我们更好的了解真正整个业务的流程。2、组内分工以及每个成员的完成情况 第一周: 一起进行需求分析以及数据库的设计。第二周:王文杰:主要负责后台数据库建库、建表、建约束以及视图、存储过程、触发器的创建。 黄涛:主要通过使用delphi连接数据库实现具体各模块功能。参考文献1萨师煊,王珊。数据库系统概论(第三版)。北京:高等教育出版社,20002Delphi 技术手册 Ray Liscbner著 632页 中国电力出版社3Delphi 7 开发人员指南 Steve Teixeira & Xavier Pacheco著 1263页 机械工业出版社29

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号