搜索
您的当前位置:首页正文

物流管理系统的SQL数据库设计含代码

来源:爱够旅游网
物流管理信息系统的数据库设计

班级

xxx

系统名称:物流管理信息系统

一、需求分析

物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是:

1、实现上游制造商的信息管理 。 2、实现下游零售商的信息管理。

3、实现进库与配送的信息管理。从而提高物流效率,降低物流成本并提高企业管理化水平。经过调研分析,得到系统的如下功能需求。 (1)数据检索

1、制造商、零售商查询某一产品名称,规格和单位 输入:产品编号

输出:产品名称,产品规格,产品单位,制造商编号

2、物流中心、制造商查询某一零售商名称,联系人,地址,电话号码,网址

输入:零售商编号

输出:零售商名称,联系人,地址,电话号码,网址 3、零售商、物流中心查询某一制造商信息表 输入:制造商编号

输出:制造商名称,联系人,地址,电话号码,网址 4、物流中心、制造商、零售商查询某一产品的出库信息表 输入:仓库编号

输出:仓库编号,库名,地址,电话

5、物流中心、零售商查询某一产品的制造商和产品信息表 输入:产品编号编号

输出:制造商名称,联系人,地址,电话号码,网站,产品名称,产品名称,产品规格,产品单位

6、查询某一产品对应的物流中心编号及产品信息 输入:产品编号

输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位

7、制造商,零售商查询某一物流中心信息 输入:物流中心编号

输出:物理中心名称,联系人,地址,电话号码,网址 (2)数据插入

①产品数据插入 ②制造商数据插入 ③零售商数据插入 ④物流中心数据插入 (3)数据修改

①产品数据修改:某产品数据变化时,输入该产品编号以及需修改的

属性,完成对产品表的修改

②制造商数据修改:某制造商数据变化时,输入该制造商编号以及需

修改的属性,完成对制造商表的修改

③零售商数据修改:某零售商数据变化时,输入该零售商编号以及需

修改的属性,完成对零售商的修改

④物流中心数据修改:某物流中心数据变化时,输入该物流中心编号

以及需修改的属性,完成对物流中心的修改

二、概念设计

经需求分析,抽象出以下E-R模型 (1)制造商实体

制造商 制造

(2)物流中心实体

物流中心 物流

(3)零售商实体

联系零售商 零售

(4)产品实体

产品编产品 规格

单位

(5)仓库实体

仓库编号6)全局E-R图仓库 电话

三、逻辑设计

产品(产品编号,产品名称,产品规格,产品单位,制造商编号) 零售商(零售商编号,名称,联系人,地址,电话号码,网站) 制造商(制造商编号,名称,地址,联系人,电话号码,网站)

物流中心(物流中心编号,名称,联系人,地址,电话号码,网站) 仓库(仓库编号,库名,地址,电话)

存放(产品编号,仓库编号,制造商编号,产品数量,入库时间) 管理(物流中心编号,仓库编号,送货时间,产品单价) 制造(制造商编号,产品编号,产品批次,产品质量) 运输(仓库编号,零售商编号,运输单价)

四、物理设计

根据以上关系模式构建的数据表结构如表所示。

表1 产品表结构

字段名 类型 特殊属性 产品编号 Char(10) PEIMARY KEY 产品名称 Char(20) NOT NULL 产品规格 Char(10) 产品单位 Char(10) NOT NULL 制造商编号

Char(10) FOREIGN KEY 表2 零售商结构

字段名 类型 特殊属性 零售商编号 Char(10) PRIMARY EKY 名称 Char(10) NOT NULL 联系人 Char(10) NOT NULL 地址 Varchar(30) NOT NULL 电话号码 Int NOT NULL 网站 Char(20)

表3 制造商结构

字段名 类型 特殊属性 制造商编号 Char(10) PRIMARY EKY 名称 Char(10) NOT NULL 联系人 Char(10) NOT NULL 地址 Varchar(30) NOT NULL 电话号码 Char(20) NOT NULL 网站

Char(20)

表4 物流中心结构

字段名 类型 特殊属性 物流中心编号 Char(10) PRIMARY EKY 名称 Char(10) NOT NULL 联系人 Char(10) NOT NULL 地址 Varchar(30) NOT NULL 电话号码 Char(20) NOT NULL 网站

Char(10) 字段名 类型 特殊属性 仓库编号 Char(10) PRIMARY KEY 库名 Char(20) NOT NULL 地址 Varchar(30) NOT NULL 电话 Char(20) NOT NULL 表5 仓库表结构

表6 存放表结构

字段名 类型 特殊属性 产品编号 Char(10) PRIMARY KEY, FOREIGN KEY 仓库编号 Char(10) PRIMARY KEY,FOREIGN KEY 制造商编号 Char(10) 产品数量 Int 入库时间

Char(10) NOT NULL

表7 管理表结构

字段名 类型 特殊属性 物流中心编号 Char(10) PRIMARY KEY,FOREIGN KEY 仓库编号 Char(10) PRIMARY KEY,FOREIGN KEY 产品单价 Int 送货日期

Char(10) 表8 制造表结构

字段名 类型 特殊属性 制造商编号 Char(10) PRIMARY KEY,FOREIGN KEY 产品编号 Char(10) PRIMARY KEY,FOREIGN KEY 产品批次 Char(10) NOT NULL 产品质量

Int NOT NULL 表9 运输表结构

字段名 类型 特殊属性 零售商编号 Char(10) PRIMARY KEY,FOREIGN KEY 仓库编号 Char(10) PRIMARY KEY,FOREIGN KEY 运输单价

Int NOT NULL 表10 提取表结构

字段名 类型 特殊属性 物流中心编号 Char(10) PRIMARY KEY,FOREIGN KEY 产品编号 Char(10) PRIMARY KEY,FOREIGN KEY 货物价格

Int NOT NULL 五、系统实现

1、数据库及其基本表的建立

数据库的建立用企业管理器,基本表的建立用T—SQL语句。 数据库名称:WL_System

1、创建表

Create database WL_System on (

name='wl_system_data', filename=

'C:\\SQLhomework\\',

size=10mb,maxsize=50mb,filegrowth=2mb ) LOG ON (

name='wl_system_log', filename='C:\\SQLhomework\\', size=10mb, maxsize=50mb, filegrowth=2mb )

2、建立基本表结构 USE WL_System

Go

Create table 制造商

(

制造商编号char(10) primary key, 名称char(10)NOT NULL,

)

联系人char(10)NOT NULL, 地址varchar(30),

电话号码char(20)NOT NULL, 网站char(20)

--drop table 制造商

Create table 产品 ( )

产品编号char(10)primary key, 产品名称char(20)NOT NULL, 产品规格char(10),

产品单位char(10)NOT NULL, 制造商编号char(10),

Foreign key (制造商编号) references 制造商(制造商编号),

Create table 零售商 ( )

零售商编号char(10) primary key, 名称char(10)NOT NULL, 联系人char(10)NOT NULL, 地址char(30)NOT NULL, 电话号码Int NOT NULL, 网站char(20)

--drop table 零售商

Create table 物流中心 (

物流中心编号char(10) primary key,

)

名称char(10)NOT NULL, 联系人char(10)NOT NULL, 地址Varchar(30),

电话号码char(20)NOT NULL, 网站char(10)

--drop table 物流中心

Create table 仓库

( )

仓库编号char(10) primary key, 库名char(20) NOT NULL, 地址varchar(30)NOT NULL, 电话char(20)NOT NULL

--drop table 仓库

Create table 存放 ( )

产品编号char(10), 仓库编号char(10), 制造商编号char(10), 产品数量int,

入库时间char(10)NOT NULL,

primary key (仓库编号,产品编号),

Foreign key (仓库编号) references 仓库(仓库编号), Foreign key (产品编号) references 产品(产品编号)

--drop table 存放

Create table 管理

( )

--drop table 管理

物流中心编号char(10), 仓库编号char(10), 产品单价int, 送货日期char(10),

primary key(物流中心编号,仓库编号),

Foreign key (物流中心编号) references 物流中心(物流中心编号), Foreign key (仓库编号) references 仓库(仓库编号)

Create table 制造

(

制造商编号char(10), 产品编号char(10),

)

产品批次char(10)NOT NULL, 产品质量int NOT NULL,

primary key(制造商编号,产品编号),

Foreign key (制造商编号) references 制造商(制造商编号), Foreign key (产品编号) references 产品(产品编号)

--drop table 制造

Create table 运输

(

零售商编号char(10), 仓库编号char(10), 运输单价int NOT NULL,

primary key(零售商编号,仓库编号),

Foreign key (零售商编号) references 零售商(零售商编号),

)

Foreign key (仓库编号) references 仓库(仓库编号)

--drop table 运输

Create table 提取 ( )

--drop table 提取

3、输入数据(其余9组输入在最后)

物流中心编号char(10), 产品编号char(10), 货物价格int NOT NULL,

primary key(物流中心编号,产品编号),

Foreign key (物流中心编号) references 物流中心(物流中心编号), Foreign key (产品编号) references 产品(产品编号)

insert into 制造商 values (

'001','钢笔公司','王女士','tian津','2297369','' )

insert into 零售商

values (

'003','学五超市','李女士','舔大','022110','' )

insert into 产品

values (

'998','钢笔','英雄','根','001'

)

insert into 物流中心 values (

'009','圆通快递','圆通大爷','舔大','02119','' )

insert into 仓库 values (

'001','南开仓库','南大','120' )

insert into 存放 values

(

'998','001','002','56','Jul7' )

insert into 管理 values (

'009','001','100','Jul_1st' )

insert into 制造 values (

'001','998','3','1' )

insert into 运输

values (

'003','001','100' )

4、创建索引

--索引 (1)

Create nonclustered index 制造商I on 制造商(制造商编号)

Create nonclustered index 零售商I on 零售商(零售商编号)

(2)

create index 物流中心I

on 物流中心(物流中心编号) create index 库存 on 仓库(库名,地址)

5、创建视图

Create view vw制造商 As

Select 名称,联系人,地址,电话号码,网站 from 制造商

Create view vw零售商 As

Select 名称,联系人,地址,电话号码,网站 from 零售商 6、创建存储过程

--存储过程~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(1)数据检索

1、制造商、零售商查询某一产品名称,规格和单位 输入:产品编号

输出:产品名称,产品规格,产品单位,制造商编号 Create procedure 产品_into(@No char(10)=null) As

if @No is null

begin

print'请输入产品编号'

end

else

begin

Select 产品名称,产品规格,产品单位,制造商编号 from 产品

where @No = 产品.产品编号

End

execute 产品_into '998'

--drop procedure 产品_into

2、物流中心、制造商查询某一零售商名称,联系人,地址,电话号码,网址

输入:零售商编号

输出:零售商名称,联系人,地址,电话号码,网址 Create procedure 零售商_into(@No char(10)=null) As if @No is null begin

print'请输入零售商编号'

end

else

begin

Select 名称,联系人,地址,电话号码,网站 from 零售商

where @No = 零售商.零售商编号

end

--drop procedure 零售商_into

execute 零售商_into '003'

3、零售商、物流中心查询某一制造商信息表 输入:制造商编号

输出:制造商名称,联系人,地址,电话号码,网址Create procedure 制造商_into(@No char(10)=null)As if @No is null begin

print'请输入制造商编号'

end

else

begin

Select 名称,联系人,地址,电话号码,网站 from 制造商

where @No = 制造商.制造商编号

end

--drop procedure 制造商_into execute 制造商_into '002'

4、物流中心、制造商、零售商查询某一产品的出库信息表 输入:仓库编号

输出:仓库编号,库名,地址,电话

Create procedure 仓库_into (@No char(10)=null) As

if @No is null

begin

print'请输入仓库编号'

end

else

begin

Select 仓库编号,库名,地址,电话 from 仓库

where @No = 仓库.仓库编号

end

--drop procedure 仓库_into execute 仓库_into '001'

5、物流中心、零售商查询某一产品的制造商和产品信息表 输入:产品编号编号

输出:制造商名称,联系人,地址,电话号码,网站,产品名称,产品名

称,产品规格,产品单位

Create procedure 制造商_产品_into(@No char(10)=null) As

if @No is null

begin

print'输入错误,请提供产品编号,即可获得制造商和产品的

信息'

end

else

begin

Select 制造商.名称,联系人,地址,电话号码,网站,产品.产品名

称,产品名称,产品规格,产品单位

From 制造商,产品

where 制造商.制造商编号=产品.制造商编号and @No=产品.产品

编号

end

execute 制造商_产品_into '998'

--哇咔咔咔咔咔^试了这么久终于成功了后面的逗号哭瞎了!!两个表真有成就感哈哈~!

--drop procedure 制造商_产品_into

编号及产品信息 输入:产品编号

6、查询某一产品对应的物流中心

输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位

Create procedure 提取_产品_into(@No char(10)=null) As

if @No is null

begin

print'请提供产品编号,即可获得物流和产品的信息'

end

else

begin

Select 物流中心编号,货物价格,提取.产品编号,产品.产品名称,

产品名称,产品规格,产品单位 from 提取inner join 产品on 产品.产品编号=产品.产品编号

where @No = 产品.产品编号

end

execute 提取_产品_into '998'

7、制造商,零售商查询某一物流中心信息 输入:物流中心编号

输出:物理中心名称,联系人,地址,电话号码,网址Create procedure 物流中心_into(@No char(10)=null) As if @No is null begin

print'请输入物流中心编号'

end

else

begin

Select 名称,联系人,地址,电话号码,网站 from 物流中心

where @No = 物流中心.物流中心编号

end

--drop procedure 物流中心_into execute 物流中心_into '009'

8、输入产品编号,输出产品信息,物流中心信息,制造商信息 Create procedure 产品_提取_物流中心_制造商_into(@No char(10)=null) As

if @No is null

begin

print'输入错误,请提供产品编号,即可获得物流和产品的信

息'

end

else

begin

Select 物流中心.物流中心编号,货物价格,提取.产品编号,产品.

产品名称,产品规格,产品单位,制造商.制造商编号,制造商.名称as 制造商名称,

物流中心.名称as 物流名称,物流中心.电话号码as 物流

电话

from 提取,产品,制造商,物流中心

where @No = 产品.产品编号and 提取.产品编号= 产品.产品编号

and 产品.制造商编号= 制造商.制造商编号and 物流中心.物

流中心编号= 提取.物流中心编号

end

--drop procedure 产品_提取_物流中心_制造商_into

exec 产品_提取_物流中心_制造商_into '998'

(2)数据插入

插入产品数据

create procedure 产品数据插入 (

@产品编号char(10), @产品名称char(20),

@产品规格char(10),@产品单位char(10),@制造商编号char(10) ) as

insert into 产品

values(@产品编号,@产品名称,@产品规格,@产品单位,@制造商编号)

execute 产品数据插入'111','铅笔','中华','支','002'

execute 制造商_产品_into '111'

插入制造商、零售商、物流中心数据

create procedure 数据零售商插入 (

@零售商编号char(10), @联系人char(10), @地址char(10),@电话char(10),@网址char(20) ) as

insert into 产品

values(@零售商编号,@联系人,@地址,@电话,@网址)

create procedure 数据制造商插入 (

@制造商编号char(10), @联系人char(10),

@地址char(10),@电话char(10),@网址char(20) ) as

insert into 产品

values(@制造商编号,@联系人,@地址,@电话,@网址)

create procedure 数据物流中心插入

(

@物流中心编号char(10), @联系人char(10),@地址char(10),@电话char(10),@网 址char(20) ) as

insert into 产品

values(@物流中心编号,@联系人,@地址,@电话,@网址)

(3)数据修改

① 产品数据修改:某产品数据变化时,输入该产品编号以及需修改的

属性,完成对产品表的修改

create procedure 产品数据修改(@产品编号char(10), @产品名称char(20)=产品名称,@产品规格char(10)=产品规格, @产品单位char(10)=产品单位,@制造商编号char(10)=制造商编号) as

update 产品

set 产品名称=@产品名称,产品规格=@产品规格,产品单位=@产品单位,制造商编号=@制造商编号

where 产品编号=@产品编号

execute 产品数据修改'998','英雄2','黑笔','支','002'

② 制造商数据修改:某制造商数据变化时,输入该制造商编号以及需

修改的属性,完成对制造商表的修改

create procedure 制造商数据修改

( ) as

update 制造商

set 制造商编号= @制造商编号, 联系人= @联系人,地址= @地址,电话号码= @电话号码,网站= @网站

where 制造商编号= @制造商编号

③ 零售商数据修改:某零售商数据变化时,输入该零售商编号以及需

@制造商编号char(10),

@联系人char(10)= 联系人, @地址char(20)= 地址, @电话号码char(10)= 电话号码,@网站char(20)= 网站

修改的属性,完成对零售商的修改

create procedure 零售商数据修改 (

@零售商编号char(10),

) as

@联系人char(10)= 联系人, @地址char(20)= 地址, @电话号码char(10)= 电话号码,@网站char(20)= 网站

update 零售商

set 零售商编号= @零售商编号, 联系人= @联系人, 地址= @地址,电话号码= @电话号码,网站= @网站 where 零售商编号= @零售商编号

④物流中心数据修改:某物流中心数据变化时,输入该物流中心编号

以及需修改的属性,完成对物流中心的修改

create procedure 物流中心数据修改 (

@物流中心编号char(10),

@联系人char(10)= 联系人, @地址char(20)= 地址,

) as

@电话号码char(10)= 电话号码,@网站char(20)= 网站

update 物流中心

set 物流中心编号= @物流中心编号, 联系人= @联系人, 地址= @地址,电话号码= @电话号码,网站= @网站 where 物流中心编号= @物流中心编号

--以下输入剩余组数据

--9

--开始输入数据

insert into 制造商 values (

'999','百货公司','9女士','城市','999999','' )

insert into 零售商 values (

'99','超市','9先生','零售商','0009990','' )

insert into 产品 values (

'0009','产品','神秘品牌','根','999' )

insert into 物流中心 values (

'9','9通快递','9通大爷','天津大','090909','' )

insert into 仓库 values (

'099','南开仓库','南大号','9990009' )

insert into 存放 values (

'0009','099','999','9','Jul9' )

insert into 管理 values (

'9','099','90','Jul_9st' )

insert into 制造 values (

'999','0009','00999','9' )

insert into 运输 values (

'99','099','909' )

insert into 提取 values (

'9','0009','99' )

--开始输入数据

insert into 制造商 values (

'888','百货公司','8女士','城市','888888','' )

insert into 零售商 values (

'88','超市','8先生','零售商','0008880','' )

insert into 产品 values (

'0008','产品','神秘品牌','根','888' )

insert into 物流中心 values (

'8','8通快递','8通大爷','天津大','080808','' )

insert into 仓库 values (

'088','南开仓库','南大号','8880008' )

insert into 存放 values (

'0008','088','888','8','Jul8' )

insert into 管理 values (

'8','088','80','Jul_8st' )

insert into 制造 values (

'888','0008','00888','8' )

insert into 运输 values (

'88','088','808' )

insert into 提取 values (

'8','0008','88' )

--开始输入数据

insert into 制造商 values (

'777','百货公司','7女士','城市','777777','' )

insert into 零售商 values (

'77','超市','7先生','零售商','0007770','' )

insert into 产品

values (

'0007','产品','神秘品牌','根','777' )

insert into 物流中心 values (

'7','7通快递','7通大爷','天津大','070707','' )

insert into 仓库 values (

'077','南开仓库','南大号','7770007' )

insert into 存放

values (

'0007','077','777','7','Jul7' )

insert into 管理 values (

'7','077','70','Jul_7st' )

insert into 制造 values (

'777','0007','00777','7' )

insert into 运输

values (

'77','077','707' )

insert into 提取 values (

'7','0007','77' )

--开始输入数据

insert into 制造商

values (

'666','百货公司','6女士','城市','666666',''

)

insert into 零售商 values (

'66','超市','6先生','零售商','0006660','' )

insert into 产品 values (

'0006','产品','神秘品牌','根','666' )

insert into 物流中心 values (

'6','6通快递','6通大爷','天津大','060606',''

)

insert into 仓库 values (

'066','南开仓库','南大号','6660006' )

insert into 存放 values (

'0006','066','666','6','Jul6' )

insert into 管理 values (

'6','066','60','Jul_6st'

)

insert into 制造 values (

'666','0006','00666','6' )

insert into 运输 values (

'66','066','606' )

insert into 提取 values (

'6','0006','66'

)

--开始输入数据

insert into 制造商 values (

'555','百货公司','5女士','城市','555555','' )

insert into 零售商 values (

'55','超市','5先生','零售商','0005550','' )

insert into 产品 values

(

'0005','产品','神秘品牌','根','555' )

insert into 物流中心 values (

'5','5通快递','5通大爷','天津大','050505','' )

insert into 仓库 values (

'055','南开仓库','南大号','5550005' )

insert into 存放 values

(

'0005','055','555','5','Jul5' )

insert into 管理 values (

'5','055','50','Jul_5st' )

insert into 制造 values (

'555','0005','00555','5' )

insert into 运输 values

(

'55','055','505' )

insert into 提取 values (

'5','0005','55' )

--开始输入数据

insert into 制造商 values (

'444','百货公司','4女士','城市','444444','' )

insert into 零售商 values (

'44','超市','4先生','零售商','0004440','' )

insert into 产品 values (

'0004','产品','神秘品牌','根','444' )

insert into 物流中心 values (

'4','4通快递','4通大爷','天津大','040404','' )

insert into 仓库 values (

'044','南开仓库','南大号','4440004' )

insert into 存放 values (

'0004','044','444','4','Jul4' )

insert into 管理 values (

'4','044','40','Jul_4st' )

insert into 制造 values (

'444','0004','00444','4' )

insert into 运输 values (

'44','044','404' )

insert into 提取 values (

'4','0004','44' )

--开始输入数据

insert into 制造商

values (

'333','百货公司','3女士','城市','333333','' )

insert into 零售商 values (

'33','超市','3先生','零售商','0003330','' )

insert into 产品 values (

'0003','产品','神秘品牌','根','333' )

insert into 物流中心 values (

'3','3通快递','3通大爷','天津大','030303','' )

insert into 仓库 values (

'033','南开仓库','南大号','3330003' )

insert into 存放 values (

'0003','033','333','3','Jul3' )

insert into 管理 values (

'3','033','30','Jul_3st' )

insert into 制造 values (

'333','0003','00333','3' )

insert into 运输 values (

'33','033','303' )

insert into 提取 values (

'3','0003','33' )

--开始输入数据

insert into 制造商 values (

'222','百货公司','2女士','城市','222222','' )

insert into 零售商

values (

'22','超市','2先生','零售商','0002220','' )

insert into 产品 values (

'0002','产品','神秘品牌','根','222' )

insert into 物流中心 values (

'2','2通快递','2通大爷','天津大','020202','' )

insert into 仓库

values (

'022','南开仓库','南大号','2220002' )

insert into 存放 values (

'0002','022','222','2','Jul2' )

insert into 管理 values (

'2','022','20','Jul_2st' )

insert into 制造

values (

'222','0002','00222','2' )

insert into 运输 values (

'22','022','202' )

insert into 提取 values (

'2','0002','22' )

--开始输入数据

insert into 制造商 values (

'111','百货公司','1女士','城市','111111','' )

insert into 零售商 values (

'11','超市','1先生','零售商','0001110','' )

insert into 产品 values (

'0001','产品','神秘品牌','根','111'

)

insert into 物流中心 values (

'1','1通快递','1通大爷','天津大','010101','' )

insert into 仓库 values (

'011','南开仓库','南大号','1110001' )

insert into 存放 values (

'0001','011','111','1','Jul1'

)

insert into 管理 values (

'1','011','10','Jul_1st' )

insert into 制造 values (

'111','0001','00111','1' )

insert into 运输 values (

'11','011','101'

)

insert into 提取 values (

'1','0001','11' )

--终于输完了T^T

因篇幅问题不能全部显示,请点此查看更多更全内容

Top