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

上传人:b****6 文档编号:8389252 上传时间:2023-01-31 格式:DOCX 页数:34 大小:1.60MB
下载 相关 举报
仓库管理系统数据库设计课程设计delphisqlserver精编版.docx_第1页
第1页 / 共34页
仓库管理系统数据库设计课程设计delphisqlserver精编版.docx_第2页
第2页 / 共34页
仓库管理系统数据库设计课程设计delphisqlserver精编版.docx_第3页
第3页 / 共34页
仓库管理系统数据库设计课程设计delphisqlserver精编版.docx_第4页
第4页 / 共34页
仓库管理系统数据库设计课程设计delphisqlserver精编版.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

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

《仓库管理系统数据库设计课程设计delphisqlserver精编版.docx》由会员分享,可在线阅读,更多相关《仓库管理系统数据库设计课程设计delphisqlserver精编版.docx(34页珍藏版)》请在冰豆网上搜索。

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

仓库管理系统数据库设计课程设计delphisqlserver精编版

福建工程学院

 

课程设计

 

课程:

数据库系统原理及应用

题目:

仓库管理系统

专业:

计算机科学与技术

班级:

计算机1002班

座号:

3100305126/3100301225

姓名:

王文杰/黄涛

 

2012年6月26日

一、系统定义

为了管理现代化的要求,建立一个经营、资金、成本与物资的动态数据收集、处理与控制的信息系统。

该系统为商品批发商仓库提供各种单项及综合的报表和计划,并实现对当前仓库和货物监控与处理,进行多功能查询。

用户可通过网络访问数据库,但需要具备不同等级权限,也需要客户端软件支持。

二、需求分析

调查用户需求

本系统的最终用户为仓库管理员和客户。

根据我们日常生活中的经验,结合对仓库管理员及客户的调查,得出用户的下列实际要求:

1)仓库的基本情况

仓库管理员管理客户、供应商、商品及仓库的信息。

(1)客户的基本信息

客户可以自己进行注册,也可以由管理员分配。

商场中的每个客户都分配有唯一的编号、名字、地址、电话号码,每个用户可以进行仓库货物信息的查询,但不可以进行修改。

(2)供应商的基本信息

每个供应商拥有唯一的编号、名称、地址、供应货物及电话号码。

(3)货物的基本信息

每种货物有一个编号,用供应商编号+仓库号+学号组成,会存放在一个仓库中,货物有唯一的名称,属于一个类型,拥有一定货物存储量,管理员可以对其信息进行修改。

(4)仓库的基本信息

每个仓库有一个编号,同样有一个名称,一个地址,也拥有一定的容量,可以扩充容量,管理员可以对其信息进行修改。

(5)货物查询的基本信息

管理员和客户都拥有对货物、仓库查询的权力,而货物查询又分为三种:

所有货物、货号查询、货名查询,给出相对应的条件,就可以查询到相关的货物编号、仓库编号、货物名称、类型名称、货物存储量,仓库查询只有所有仓库,给出相应的条件则可以查询到相关仓库编号、仓库名字、仓库地址、仓库容量。

(6)出入库的基本信息

供应商和客户的每次提供、购买货物都会造成仓库相关货物信息的改变,货物入库时更新货物编号、货物名称、入库时间、货物类型、供应商编号、收购单价、入库总量、仓库编号、客户编号,货物出库时更新货物编号、货物名称、出库时间、货物类型、供应商编号、收购单价、出库总量、仓库编号、客户编号信息。

2)用户对系统的要求

通过需求分析,对商品库存进行有效的管理,使之形成完善的应用系统。

数据库设计中要合理设置商品信息和库存信息等,用来实现商品信息的新增,修改、删除等功能,使得商家有较详细的数据统计与分析。

基本功能:

(1)登录认证

作为一个企业实际应用项目,登录认证是必不可少的。

本项目的用户登录管理比较简单,分为管理员和客户登录,管理员和客户有不同的权限。

(2)统计报表

统计报表模块包括客户统计、供货商统计、货物统计、仓库统计。

各个统计都可以按照各个关键字进行统计查询。

(3)入库管理

入库管理主要是管理员对仓库进行进货入库的操作,管理人员通过改功能模块把每天的入库商品明细输入数据库并对商品信息进行修改和删除。

该模块支持按货物编号和货物名称、所有货物等关键字查询货物编号、仓库编号、货物名称、类型名称、货物存储量。

(4)出库管理

出库管理模块与入货管理模块相似,主要是对货物出库信息进行管理。

管理员员通过该功能模块对出库商品进行出库操作。

(5)库存管理

库存管理模块主要是对已库存的商品进行操作,包括对商品的仓库信息进行修改。

另外,可以按货物编号和货物名称、所有货物对所有货物进行盘点。

1.数据流图

2.数据项

1.客户数据字典

属性名

存储代码

类型

长度

备注

编号

Cno

char

5

客户编号

姓名

Cname

char

20

客户姓名

地址

Caddr

char

40

客户地址

电话

Ctel

char

11

客户电话

密码

Cpw

char

10

客户密码

2.货物数据字典

属性名

存储代码

类型

长度

备注

货物编号

Gno

char

5

货物名称

Gname

char

20

仓库编号

Tno

char

5

3.管理员数据字典

属性名

存储代码

类型

长度

备注

编号

M01

char

5

管理员编号

姓名

Mname

char

20

管理员姓名

密码

PW

char

10

管理员密码

4.供应商数据字典

属性名

存储代码

类型

长度

备注

编号

Pno

char

5

供应商编号

姓名

Pname

char

20

供应商姓名

地址

Paddr

char

40

供应商地址

货物

Pgoods

char

6

供商供应货物

电话

Ptel

char

11

供应商电话

5.仓库存储数据字典

属性名

存储代码

类型

长度

备注

货物编号

Gno

char

5

仓库编号

Sno

char

5

货物名称

Gname

char

10

类型名称

Tname

char

20

货物存储量

Gnum

int

4

仓库货物存储量

6.货物入库数据字典

属性名

存储代码

类型

长度

备注

供应商编号

Pno

char

5

货物名称

Gname

char

10

货物类型

Tname

char

20

仓库编号

Sno

real

4

入库总量

Innum

int

4

货物入库总量

收购单价

Inprice

real

4

货物收购单价

入库时间

Indata

char

20

货物入库时间

7.货物出库数据字典

属性名

存储代码

类型

长度

备注

货物编号

Gno

char

5

客户编号

Cno

char

5

货物名称

Gname

char

10

货物类型

Tname

char

20

出库编号

Sno

real

4

货物出库编号

出库总量

Outnum

int

4

货物仓库总量

售出单价

Outprice

real

4

货物出库单价

出库时间

Outdata

char

20

货物出库时间

8.仓库数据字典

属性名

存储代码

类型

长度

备注

仓库编号

Sno

char

5

仓库名称

Sname

char

20

仓库地址

Saddr

char

40

仓库容量

Ssize

int

4

9.货物类型数据字典

属性名

存储代码

类型

长度

备注

类型编号

Tno

char

5

类型名称

Tname

char

20

类型描述

Tdescription

char

50

3.数据结构

数据结构名

组成

管理员

管理员编号,管理员姓名,密码

客户

客户编号,客户名称,地址,联系电话,密码

供应商

供应商编号,供应商名称,供应商地址,货物,联系方式

货物

物品编号,物品编号,类型编号

仓库

仓库编号,仓库名称,仓库地址,仓库面积

货物类型

类型编号,类型名称,类型描述

入库

货物编号,供应商编,货物名称,货物类型,入库总量,收购单价,仓库编号,入库时间

出库

货物编号,客户编号,货物名称,货物类型,出库总量,售出单价,仓库编号,出库时间

库存

货物编号,仓库编号,货物名称,货物类型,货物总量

4.数据流

数据流名

数据流来源

数据流去向

组成

注册管理员信息

管理员

管理员信息表

管理员注册信息

注册客户信息

客户

客户信息表

客户注册信息

注册供应商信息

供应商

供应商信息表

供应商注册信息

查询客户信息

客户

管理员

客户注册信息

查询供应商信息

供应商

管理员

供应商注册信息

注销客户信息

客户信息表

管理员

客户注销信息

注销供应商信息

供应商信息表

管理员

供应商注销信息

修改客户信息

客户信息表

管理员

客户修改信息

修改供应商信息

供应商信息表

管理员

供应商修改信息

查询货物信息

货物信息表

管理员

货物查询信息

货物入库信息

客户

货物信息表

货物入库信息

货物出库信息

货物信息表

客户

货物出库信息

扩建仓库信息

管理员

仓库信息表

仓库扩建信息

修改货物信息

货物信息表

管理员

货物修改信息

5.数据存储

数据存储名

输入的数据流

输出的数据流

组成

客户信息表

客户注册信息

客户修改信息

客户注册信息

客户注册信息

客户修改信息

货物信息表

货物入库信息

货物出库信息

货物入库信息

货物出库信息

供应商信息表

供应商注册信息

供应商修改信息

供应商注册信息

供应商注册信息

供应商修改信息

管理员信息表

管理员注册信息

管理员注册信息

管理员注册信息

库存信息表

入库信息

出库信息

入库信息

出库信息

入库信息表

入库信息

货物修改信息

入库信息

货物修改信息

仓库信息表

仓库扩建信息

仓库删除信息

仓库扩建信息

仓库删除信息

6.处理过程

处理过程名

输入数据流

输出数据流

注册客户

客户注册信息

客户注册信息

注册供应商

供应商注册信息

供应商注册信息

注销客户信息

客户注册信息

客户注册信息

注销供应商信息

供应商注册信息

供应商注册信息

修改客户信息

客户注册信息

客户注册信息

修改供应商信息

供应商注册信息

供应商注册信息

查询客户信息

客户注册信息

客户注册信息

查询供应商信息

供应商注册信息

供应商注册信息

货物查询

货物信息

货物信息

货物入库

货物信息

货物信息

货物出库

货物信息

货物信息

仓库扩建

仓库信息

仓库信息

货物修改

货物信息

货物信息

三、系统设计

1、概念结构设计

1)总E-R图

2)货物类型E-R图

3)库存实体E-R图

3)入库实体E-R图

4)出库实体E-R图

2、逻辑结构设计

客户(编号,姓名,联系方式,地址)

管理员(编号,姓名,联系方式,密码)

货物(货物编号,货物名称,仓库编号)

货物类型(类型编号,类型名称,类型描述)

供应商(编号,名称,地址,货物,电话)

仓库存储(货物编号,仓库编号,货物名称,类型名称,货物存储量)

货物入库(货物编号,供应商编号,货物名称,货物类型,仓库编号,入库总量,收购单价,入库时间)

货物出库(货物编号,客户编号,货物名称,货物类型,仓库编号,出库总量,售出单价,出库时间)

仓库(仓库编号,仓库名称,仓库地址,仓库容量)

3、系统功能模块图

4、其它设计图形工具

亿图专业流程图、网络图制作工具V1.6.2(试用版)

四、详细设计

数据库中的表、视图、存储过程如下图所示:

存储过程、视图、触发器主要sql语句:

----------------------------------------------

--创建存储过程

----------------------------------------------

---客户登陆 存储过程

alterprocproc_Clogin

@cnoint,

@pwdvarchar(20),

@statusintoutput

as

select@status=count(*)fromcustomerwherecno=rtrim(ltrim(@cno))andcpw=rtrim(ltrim(@pwd))

if@status=1set@status=0------0登陆成功

else

begin

select@status=count(*)fromcustomerwherecno=rtrim(ltrim(@cno))

if@status=0set@status=1--------1账户不存在

elseset@status=2---------------2密码错误

end

--客户注册存储过程

createprocproc_Creg

@Cnamevarchar(20),

@Caddrvarchar(40),

@Ctelchar(11),

@pwdvarchar(10),

@Cnointoutput

as

insertintocustomervalues(@Cname,@Caddr,@Ctel,@pwd)

select@Cno=Max(Cno)fromcustomer

--添加客户存储过程

alterprocproc_AddCustm

@Cnamevarchar(20),

@Caddrvarchar(40),

@Ctelchar(11),

@pwdvarchar(10)

as

insertintocustomer(cname,caddr,ctel,cpw)values(@Cname,@Caddr,@Ctel,@pwd)

--客户修改存储过程

createprocproc_Cupd

@cnoint,

@Cnamevarchar(20),

@Caddrvarchar(40),

@Ctelchar(11),

@pwdvarchar(10)

as

updatecustomer

setcname=@Cname,caddr=@Caddr,ctel=@Ctel,cpw=@pwd

wherecno=@cno

---管理登陆 存储过程

alterprocproc_Mlogin

@mnoint,

@pwdvarchar(20),

@statusintoutput

as

select@status=count(*)frommanagerwheremno=@mnoandmpw=rtrim(ltrim(@pwd))

if@status=1set@status=0------0登陆成功

else

begin

select@status=count(*)frommanagerwheremno=@mno

if@status=0set@status=1--------1用户名不存在

elseset@status=2---------------2密码错误

end

--管理注册存储过程

createprocproc_Mreg

@Mnamevarchar(20),

@pwdvarchar(20),

@Mnointoutput

as

insertintomanagervalues(@Mname,@pwd)

select@Mno=Max(Mno)frommanager

--添加供应商存储过程

alterprocproc_AddProv

@Pnamevarchar(20),

@Paddrvarchar(40),

@Ptelchar(11),

@Pgoodschar(11)

as

insertintoprovidervalues(@Pname,@Paddr,@Pgoods,@Ptel)

--修改供应商存储过程

createprocproc_UpdProv

@pnoint,

@Pnamevarchar(20),

@Paddrvarchar(40),

@Ptelchar(11)

as

updateprovider

setpname=@pname,paddr=@paddr,ptel=@ptel

wherepno=@pno

--注销客户存储过程

createprocproc_Cdel

@Cnoint

as

deletefromcustomerwherecno=@cno

--注销供应商存储过程

createprocproc_Pdel

@Pnoint

as

deletefromproviderwherepno=@Pno

--注销管理员存储过程

createprocproc_Mdel

@Mnoint

as

deletefrommanagerwheremno=@mno

 

execproc_Mdel112

---调用存储过程

declare@aint

execproc_Mlogin100,'110',@aoutput

print@a

 

--货物入库存储过程

alterprocproc_goodsin

@pnoint,

@gnamechar(10),

@Tnamechar(20),

@snoint,

@innumint,

@inpricemoney

as

insertintogoods_in(pno,gname,tname,sno,innum,inprice)

values(@pno,@gname,@tname,@sno,@innum,@inprice)

--货物出库存储过程

createprocproc_goodsout

@gnoint,

@cnoint,

@gnamechar(10),

@Tnamechar(20),

@snoint,

@outnumint,

@outpricemoney

as

insertintogoods_out(gno,cno,gname,tname,sno,outnum,outprice)

values(@gno,@cno,@gname,@tname,@sno,@outnum,@outprice)

----------------------------------------------

--  创建视图

----------------------------------------------

--货物视图

alterviewview_goods

as

selecta.gno货物编号,a.gname货物名称,d.tname类型编号,isnull(sum(Innum)-sum(outnum),sum(Innum))数量

fromgooda,goods_inbleftouterjoingoods_outconb.gname=c.gname,typegoodd

wherea.gname=b.gnameandd.tno=a.tno

groupbya.gno,a.gname,d.tname

--客户视图

alterviewview_customer

as

selectcno客户编号,cname客户名称,caddr客户地址,ctel联系方式

fromcustomer

--仓库视图

alterviewview_storage

as

selecta.sno仓库编号,sname仓库名称,saddr仓库地址,ssize仓库容量,ssize-isnull(sum(b.innum),0)+isnull(sum(c.outnum),0)仓库余量

fromstoragealeftouterjoingoods_inbona.sno=b.snoleftouterjoingoods_outconb.sno=c.sno

groupbya.sno,sname,saddr,ssize

--供应商视图

alterviewview_provider

as

selectpno供应商编号,pname供应商名,paddr地址,pgoods供应货物,ptel联系方式

fromprovider

 

----------------------------------------------

-- 创建触发器

----------------------------------------------

--禁止删除初始化管理员

createtriggertrig_manager100

onmanager

fordelete

as

declare@cntint

select@cnt=count(mno)fromdeletedwheremno=100

if@cnt<>0

begin

raiserror('无法删除初始化管理员!

',16,1)

rollbacktransaction

end

go

select*fromprovider

--进货时如果没有过这种货物或者货物类型,则新建

altertriggertrig_newgoodAndtype

ongoods_in

forinsert

as

declare@cnt1int,@gtypechar(20),@cntint,@gnamechar(20),@gtint

select@cnt1=count(*)frominsertedwheretnamein(selecttnamefromtypegood)

if@cnt1=0

begin

select@gtype=tnamefrominserted

insertintotypegood(tname)values(@gtype)

end

select@cnt=count(*)frominsertedwheregnamein(selectgnamefromgood)

if@cnt=0

begin

select@gname=gnamefrominserted

select@gt=tnofromtypegoodwheretname=(selecttnamefrominserted)

insertintogood(gname,tno)values(@gname,@gt)

end

go

--货物不能小于

createtriggertrig_gooderror

ongoods_out

forinsert

as

declare@sumint,@gnamechar(20)

select@gname=gnamefrominserted

sel

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

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1