企业仓库管理系统数据库设计.docx

上传人:b****6 文档编号:11902685 上传时间:2023-06-03 格式:DOCX 页数:21 大小:23.69KB
下载 相关 举报
企业仓库管理系统数据库设计.docx_第1页
第1页 / 共21页
企业仓库管理系统数据库设计.docx_第2页
第2页 / 共21页
企业仓库管理系统数据库设计.docx_第3页
第3页 / 共21页
企业仓库管理系统数据库设计.docx_第4页
第4页 / 共21页
企业仓库管理系统数据库设计.docx_第5页
第5页 / 共21页
企业仓库管理系统数据库设计.docx_第6页
第6页 / 共21页
企业仓库管理系统数据库设计.docx_第7页
第7页 / 共21页
企业仓库管理系统数据库设计.docx_第8页
第8页 / 共21页
企业仓库管理系统数据库设计.docx_第9页
第9页 / 共21页
企业仓库管理系统数据库设计.docx_第10页
第10页 / 共21页
企业仓库管理系统数据库设计.docx_第11页
第11页 / 共21页
企业仓库管理系统数据库设计.docx_第12页
第12页 / 共21页
企业仓库管理系统数据库设计.docx_第13页
第13页 / 共21页
企业仓库管理系统数据库设计.docx_第14页
第14页 / 共21页
企业仓库管理系统数据库设计.docx_第15页
第15页 / 共21页
企业仓库管理系统数据库设计.docx_第16页
第16页 / 共21页
企业仓库管理系统数据库设计.docx_第17页
第17页 / 共21页
企业仓库管理系统数据库设计.docx_第18页
第18页 / 共21页
企业仓库管理系统数据库设计.docx_第19页
第19页 / 共21页
企业仓库管理系统数据库设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

企业仓库管理系统数据库设计.docx

《企业仓库管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《企业仓库管理系统数据库设计.docx(21页珍藏版)》请在冰点文库上搜索。

企业仓库管理系统数据库设计.docx

企业仓库管理系统数据库设计

山东建筑大学计算机科学与技术学院

课程设计说明书

题目:

企业仓库管理系统设计-提货

管理及用户登录模块

课程:

数据库原理及应用课程设计

院(部):

计算机学院

山东建筑大学计算机科学与技术学院

课程设计任务书

设计题目

企业仓库管理系统设计-提货管理及用户登录模块

已知技术参数和设计要求

为了满足公司仓库管理的业务需求,先需要开发企业仓库管理系统。

该系统对货物进行入库和出库管理。

该系统的管理员为仓库管理员,同时他也是系统管理员。

我实现的功能模块:

用户登录管理、提货管理。

具体描述如下:

(1)用户登录注册管理。

①用户注册。

用户注册时,输出客户号和密码,如果客户号不存在则注册成功,若客户号已存在则用户存在,不能注册。

②用户登录。

用户登录时,输出客户号和密码,与数据库中客户表匹配数据,如果客户号和密码都相同则登录成功,否则登录失败。

(2)提货管理。

①申请提货登记。

包括:

货物号,客户号,货物数量。

②审核提货单。

首先根据数据库客户信息表审核提货单中客户是否存在,若客户存在,然后根据数据库仓库库存信息审核客户所需货物数量是否充足。

③货物出库登记:

包括:

货物号,客户号,货物数量,出库日期。

设计内容与步骤

1、需求分析

2、数据库设计

3、用SQL语句、触发器与存储过程等实现功能

4、课程设计说明书

设计工作计划与进度安排

1、设计工作6学时

2、实现4学时

3、课程设计说明书2学时

设计考核要求

1、考勤20%

2、课程设计说明书50%

3、答辩30%

指导教师(签字):

教研室主任(签字):

1.系统概述

本作品完成的是企业仓库管理系统,前期主要是需求分析,包括数据与处理,并对有关企业仓库管理系统的管理员需求进行了综合、归纳和抽象,形成了一个独立于DBMS的概念模型,画出了E—R图,然后本组在数据库中将概念模型转换成了数据模型,建了客户信息表Users,用到了仓库基本信息表Storage,仓库库存信息表Repertory,然后本小组分工实现了用户登录、采购管理、提货管理、入库管理、出库管理。

本人实现的:

(企业仓库管理系统设计—提货管理及用户登录模块)

1.未注册的客户先进行注册,注册后登录,注册的客户可直接登录系统。

2.当客户提出提货请求时,产生一个提货单

3.首先根据数据库客户信息表审核提货单中客户是否存在。

4.若客户存在,则审核货物,查看货物数量是否充足。

5.审核成功后进行货物出库登记,登记的内容有货物号、客户号、货物数量、日期。

在OutS表中插入登记的此条出库记录。

2.需求分析

现要开发企业仓库管理系统。

经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能:

(1)用户的注册,登录。

(2)货物采购管理

(3)仓库入库管理。

(4)仓库提货管理。

(5)仓库出库管理。

2.1、数据流图:

图2.1企业仓库管理系统顶层数据流图

图2.2企业仓库管理系统0层数据流图

图2.3用户登录注册数据流图

图2.4仓库提货管理数据流图

2.2、数据字典

表2.1数据项表

数据项名称

含义说明

类型

长度

货物号

唯一标识一个货物

字符型

20

货物名

货物的名称

字符型

20

货物数量

货物的总数量

整型

货物价格

货物的价钱

整型

供应商号

唯一标识一个供应商

字符型

20

供应商名

供应商的名字

字符型

20

客户号

唯一标识一个客户

字符型

20

客户密码

客户的密码

字符型

20

仓库号

唯一标识仓库信息

字符型

20

仓库总容量

仓库的总容量信息

整型

仓库剩余容量

仓库剩余容量

整型

出库编号

用于记录货物出库

字符型

20

出库日期

用于记录货物何时出库

字符型

20

管理员账号

唯一标示管理员信息

字符型

20

管理员密码

管理员管理员的密码

字符型

20

2.2.2数据结构

(1)名称:

客户

含义说明:

定义了一个客户有关的信息

组成结构:

客户号+客户密码

 

(2)名称:

货物

含义说明:

定义了一个货物有关的信息

  组成结构:

货物号+货物名+货物价格+货物型号+货物类别

(3)名称:

仓库

含义说明:

定义了一个仓库的有关信息

组成结构:

仓库号+仓库总容量+仓库剩余容量

2.2.3数据流

(1)数据流名称:

入库单

含义:

客户入库时需要填写的信息

来源:

客户

去向:

审核客户

数据流量:

50份/天

组成:

客户号+货物名+货物数量

(2)数据流名称:

出库单

含义:

客户出库时需要填写的信息

来源:

客户

去向:

审核客户

数据流量:

50份/天

组成:

客户号+货物名+货物数量

(3)数据流名称:

提货单

含义:

客户提货时需要填写的信息

来源:

客户

去向:

审核客户

数据流量:

50份/天

组成:

客户号+货物号+货物数量

(4)数据流名称:

违规单

含义:

如果无法提出所需货物,会给出一个反馈

来源:

系统管理员

去向:

反馈给客户

数据流量:

50份/天

组成:

无法提货原因

(1)数据存储名称:

管理员信息表

含义说明:

存放管理员的注册信息

组成结构:

管理员账号+管理员密码

说明:

用来存储管理员信息,管理员账号号是管理员的主属性

(2)数据存储名称:

客户信息表

含义说明:

存放客户的注册信息

组成结构:

客户号+客户密码

说明:

用来存储客户信息,客户号是客户的主属性

(3)数据存储名称:

货物信息表

含义说明:

存放货物的注册信息

组成结构:

货物号+货物名+货物价格

说明:

货物号为其主属性,货物价格为当前该货物的入库价格

(4)数据存储名称:

仓库信息表

含义说明:

存放仓库的相关信息

组成结构:

仓库号+仓库总容量+仓库剩余容量

说明:

仓库号为其主码,要求能根据审核仓库的剩余容量查询货物的存放与否。

(5)数据存储名称:

出库信息表

含义说明:

存放货物出库信息

组成结构:

出库编号+货物号+客户号+货物数量+货物价格+仓库号+出库日期

说明:

出库编号为其主码

(6)数据存储名称:

仓库库存信息表

含义说明:

用来存储当前仓库存储信息

组成结构:

仓库号+货物号+客户号+货物数量

说明:

仓库号,货物号,客户号是其主码,货物数量为当前仓库中该客户的该货物的数量。

(7)数据存储名称:

提货单信息表

含义说明:

存放客户提货时所需的提货单

组成结构:

客户号+货物号+货物量

说明:

仓库号,货物号,客户号是其主码,货物数量为当前仓库中该客户的该货物的数量。

处理过程名称

输入

输出

加工逻辑

货物入库

入库单

核对正确后的入库信息表

将货物按照入库单清点正确后,审核通过,否则不通过

货物出货

出货单

核对正确后的出库信息表

将货物按照出库单清点正确后,审核通过,否则不通过

订货单

订货单

核对正确后的订货单

按照客户的订货情况进行核对

发货单

发货单

核对正确后的发货单

按照客户的订货情况进行核对然后发货

3.数据库概念结构设计

3.1、标识仓库管理系统中的实体和属性

参照数据字典中对数据存储的描述,可初步确定实体和属性为:

管理员{管理员账号,管理员密码}

货物{货物号,货物名,货物价格,货物型号,货物类别}

客户{客户号,客户密码}

供应商{供应商编号,供应商名}

仓库{仓库号,仓库的总容量,仓库的剩余容量}

入库信息{入库编号,货物号,客户号,货物数量,仓库号,入库日期}

出库信息{货物号,客户号,货物数量,出库日期}

仓库存信息{仓库号,货物号,客户号,货物数量}

提货单信息{货物号,客户号,货物数量}

其中有下划线的属性为实体的码。

3.2、确定实体间的联系

图3.1企业仓库管理系统总E-R图

图3.2仓库提货管理E-R图

4.数据库逻辑结构设计

4.1、关系模型

表4.1关系模式表

将在概念结构阶段得到的基本E-R图转换成关系模型,如下表所示:

关系名

属性及码

其他约束条件

货物

货物号,货物名,货物价格

货物号为主码

货物名不允许为空

客户

客户号,客户密码

客户号为主码

客户密码不允许为空

仓库

仓库号,总容量,剩余容量

仓库号为主码

总容量、剩余容量不允许为空

入库信息

入库编号,货物号,客户号,货物数量,仓库号,入库日期

入库编号为主码

货物号,客户号不允许为空

出库信息

货物号,客户号,货物数量,出库日期

货物号,客户号为主码,并且为外码。

货物号,客户号不允许为空

仓库库存信息

仓库号,货物号,客户号,货物数量量

仓库号,货物号,客户号为主码,并且为外码。

货物号,客户号不允许为空

管理员信息

管理员账号,管理员密码

管理员账号为主码

密码不允许为空

4.2、表与视图的设计

表4.2Users(客户表)

字段名

字段含义

字段类型

长度

小数

是否为空

列级约束

Uid

客户号

VARCHAR

20

NOTNULL

Primarykey

Upassword

客户密码

VARCHAR

20

NOTNULL

NOTNULL

函数依赖有:

Uid→Upassword

可以看出非主属性Upassword完全函数依赖于Uid,并且此表绝不会存在传递函数依赖和部分函数依赖问题,所以Users属于3NF甚至于更高的级别。

表4.3Goods(货物表)

字段名

字段含义

字段类型

长度

小数

是否为空

列级约束

Gid

货物号

VARCHAR

20

NOTNULL

Primarykey

Gname

货物名

VARCHAR

20

NOTNULL

NOTNULL

Gprice

货物价格

INT

NOTNULL

NOTNULL

Gmodel

货物型号

VARCHAR

20

NOTNULL

NOTNULL

Gsort

货物类别

VARCHAR

20

NOTNULL

NOTNULL

函数依赖有:

Gid→Gname,Gid→Gprice,Gid→Gmodel,Gid→Gsort

可以看出非主属性Gname,Gprice,Gmodel,Gsort完全函数依赖于Gid,并且此表绝不会存在传递函数依赖和部分函数依赖问题,所以Users属于3NF甚至于更高的级别。

表4.4Storage(仓库信息表)

字段名

字段含义

字段类型

长度

小数

是否为空

列级约束

Sid

仓库号

VARCHAR

20

NOTNULL

Primarykey

Sstocks

仓库总容量

INT

NOTNULL

NOTNULL

Ssstock

剩余容量

INT

NOTNULL

NOTNULL

函数依赖有:

Sid→Sstocks,Sid→Ssstock

可以看出非主属性Sstocks、Ssstock完全函数依赖于Sid,并且Storage表中没有传递函数依赖,即每一个非主属性既不部分依赖于码也不传递依赖于码,所以Storage属于3NF。

表4.5Lading(提货单信息表)

字段名

字段含义

字段类型

长度

小数

是否为空

列级约束

Uid

客户号

VARCHAR

20

NOTNULL

ForeignkeyreferencesUsers(Uid)

Gid

货物号

VARCHAR

20

NOTNULL

ForeignkeyreferencesGoods(Gid)

Lnumber

提货数量

INT

NULL

函数依赖有:

(Uid,Gid)→Lnumber

可以看出非主属性Lnumber完全函数依赖于(Uid,Gid),并且Lading表中没有传递函数依赖,即每一个非主属性既不部分依赖于码也不传递依赖于码,所以Lading属于3NF。

表4.6OutS(出库信息表)

字段名

字段含义

字段类型

长度

小数

是否为空

列级约束

Gid

货物号

VARCHAR

20

NOTNULL

ForeignkeyreferencesGoods(Gid)

Uid

客户号

VARCHAR

20

NOTNULL

ForeignkeyreferencesUsers(Uid)

Gnumber

货物数量

INT

NULL

MODIFYDATE

出货日期

datatime

NULL

表级约束

Primarykey(Gid,Uid)

函数依赖有:

(Gid,Uid)→Gnumber,MODIFYDATE

非主属性Gnumber,MODIFYDATE完全函数依赖于(Gid,Uid),且不存在传递函数依赖,即属于3NF。

表4.7Repertory(仓库库存信息表)

字段名

字段含义

字段类型

长度

小数

是否为空

列级约束

Sid

仓库号

VARCHAR

10

NOTNULL

ForeignkeyreferencesStorate(sid)

Gid

货物号

VARCHAR

20

NOTNULL

ForeignkeyreferencesCargo(gid)

Gnumber

货物数量

INT

NULL

表级约束

Primarykey(Sid,Gid)

函数依赖有:

(Sid,Gid)→Gnumber

可以看出非主属性Gnumber对(Sid,Gid)是完全函数依赖,并且不存在传递依赖,即每一个非主属性既不部分依赖于码也不传递依赖于码,所以Repertory属于3NF。

5.数据库物理设计及实施

5.1创建数据库

createdatabase企业仓库系统;

5.2创建表

创建Users表:

createtableUsers

(Uidvarchar(20)notnullprimarykey,

Upasswordvarchar(20)notnull

);

创建Goods表:

createtableGoods

(Gidvarchar(20)notnullprimarykey,

Gnamevarchar(20)notnull,

Gpriceintnotnull,

Gmodelvarchar(20)notnull,

Gsortvarchar(20)notnull

);

创建Storage表:

createtableStorage

(Sidvarchar(20)notnullprimarykey,

Sstocksintnotnull,

Ssstockintnotnull

);

创建Lading表:

createtableLading

(Lidvarchar(20)primarykey,

Uidvarchar(20),

Gidvarchar(20),

Lnumberint

);

创建Reterpory表:

createtableReterpory(

Sidvarchar(20)notnull,

Gidvarchar(20)notnull,

Gnumberintnotnull,

primarykey(Sid,Gid),

foreignkey(Sid)referencesStorage(Sid),

foreignkey(Gid)referencesGoods(Gid),

);

创建OutS表:

createtableOutS(

Gidvarchar(20),

Uidvarchar(20),

Gnumberint,

MODIFYDATEdatetime,

foreignkey(Gid)referencesgoods(Gid),

foreignkey(Uid)referencesusers(Uid)

);

向Users表中插入数据:

insertintoUsers(Uid,Upassword)values('U1','aaa');

insertintoUsers(Uid,Upassword)values('U2','bbb');

insertintoUsers(Uid,Upassword)values('U3','ccc');

insertintoUsers(Uid,Upassword)values('U4','ddd');

insertintoUsers(Uid,Upassword)values('U5','eee');

insertintoUsers(Uid,Upassword)values('U6','fff');

insertintoUsers(Uid,Upassword)values('U7','ggg');

insertintoUsers(Uid,Upassword)values('U8','hhh');

insertintoUsers(Uid,Upassword)values('U9','jjj');

insertintoUsers(Uid,Upassword)values('U10','kkk');

select*fromUsers;

向Goods表中插入数据:

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G1','a',20,'A','一级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G2','b',10,'B','二级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G3','c',50,'C','一级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G4','d',70,'D','三级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G5','e',20,'E','二级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G6','f',100,'F','一级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G7','g',140,'G','三级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G8','h',60,'H','一级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G9','i',80,'I','二级');

insertintoGoods(Gid,Gname,Gprice,Gmodel,Gsort)values('G10','j',90,'J','一级');

select*fromGoods;

向Reterpory表中插入数据:

insertintoReterporyvalues('S1','G1',600);

insertintoReterporyvalues('S2','G2',800);

insertintoReterporyvalues('S3','G3',1000);

insertintoReterporyvalues('S4','G4',900);

insertintoReterporyvalues('S5','G6',800);

insertintoReterporyvalues('S6','G7',700);

insertintoReterporyvalues('S7','G8',600);

insertintoReterporyvalues('S8','G5',950);

insertintoReterporyvalues('S9','G10',500);

insertintoReterporyvalues('S10','G9',1100);

select*fromReterpory;

6.功能实现

6.1用户注册登录功能模块

1.用户注册时,输出客户号和密码,如果客户号不存在则注册成功,若客户号已存在则用户存在,不能注册。

--用户注册存储过程

createprocedureinsertUsers

@uidvarchar(20),

@upasswordvarchar(20),

@returnnamevarchar(20)output

as

ifexists(selectUidfromUserswhereUid=@uid)

begin

set@returnname='用户存在'

end

else

begin

insertintoUsersvalues(@uid,@upassword)

set@returnname='注册成功'

end

go

2.用户登录时,输出客户号和密码,与数据库中客户表匹配数据,如果客户号和密码都相同则登录成功,否则登录失败。

--用户登录存储过程

createprocedureloginUsers

@uidvarchar(20),

@upasswordvarchar(20),

@returnnamevarchar(20)output

as

ifexists(selectUid,Upassword--判断登录信息是否正确

fromUsers

whereUid=@uidandUpassword=@upassword)

begin

set@returnname='登陆成功'

end

else

begin

set@returnname='登录失败'

end

go

6.2仓库提货功能模块

1.当客户提出提货请求时,产生一个提货单。

(运用insert语句将提货单信息插入到提货信息表Lading)

insertintoLadingvalues('L1','U1','G1',500);

insertintoLadingvalues('L2','U3','G9',1000);

insertintoLadingvalues('L3','U8','G7',800);

insertintoLa

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2