资源描述
班级
xxx
系统名称:物流管理信息系统
一、需求分析
物流管理系统是为制造商和零售商设计地管理系统数据库系统,目地是:
1、实现上游制造商地信息管理 .
2、实现下游零售商地信息管理.
3、实现进库和配送地信息管理.从而提升物流效率,降低物流成本并提升企业管理化水平.经过调研分析,得到系统地以下功效需求.资料个人搜集整理,勿做商业用途
(1)数据检索
1、制造商、零售商查询某一产品名称,规格和单位
输入:产品编号
输出:产品名称,产品规格,产品单位,制造商编号
2、物流中心、制造商查询某一零售商名称,联络人,地址,电话号码,网址
输入:零售商编号
输出:零售商名称,联络人,地址,电话号码,网址
3、零售商、物流中心查询某一制造商信息表
输入:制造商编号
输出:制造商名称,联络人,地址,电话号码,网址
4、物流中心、制造商、零售商查询某一产品地出库信息表
输入:仓库编号
输出:仓库编号,库名,地址,电话
5、物流中心、零售商查询某一产品地制造商和产品信息表
输入:产品编号编号
输出:制造商名称,联络人,地址,电话号码,网站,产品名称,产品名称,产品规格,产品单位
6、查询某一产品对应地物流中心编号及产品信息
输入:产品编号
输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位
7、制造商,零售商查询某一物流中心信息
输入:物流中心编号
输出:物理中心名称,联络人,地址,电话号码,网址
(2)数据插入
①产品数据插入
②制造商数据插入
③零售商数据插入
④物流中心数据插入
(3)数据修改
①产品数据修改:某产品数据改变时,输入该产品编号和需修改地属性,完成对产品表地修改
②制造商数据修改:某制造商数据改变时,输入该制造商编号和需修改地属性,完成对制造商表地修改
③零售商数据修改:某零售商数据改变时,输入该零售商编号和需修改地属性,完成对零售商地修改
④物流中心数据修改:某物流中心数据改变时,输入该物流中心编号和需修改地属性,完成对物流中心地修改
二、概念设计
经需求分析,抽象出以下E-R模型
(1)制造商实体
地址
制造商编号
网站
电话号码
联络人
名称
制造商
(2)物流中心实体
电话号码
地址
物流中心编号
物流中心
联络人
名称
网站
(3)零售商实体
零售商编号
地址
电话号码
联络人
名称
网站
零售商
(4)产品实体
单位
规格
名称
产品编号
产品
(5)仓库实体
库名
电话
地址
仓库编号
仓库
(6)全局E-R图
制造商编号
产品数量
仓库编号
产品编号
运输单价
入库时间
产品单价
送货时间
货物价格
物流编号
仓库编号
n
m
存放
m
物流中心编号
产品编号
产品质量
产品批次
产品编号
制造商编号
m
m
n
n
n
n
1
运输
管理
提取
制造
物流中心
零售商
仓库
产品
制造商
资料个人搜集整理,勿做商业用途
仓库编号
零售商编号
三、逻辑设计
产品(产品编号,产品名称,产品规格,产品单位,制造商编号)
零售商(零售商编号,名称,联络人,地址,电话号码,网站)
制造商(制造商编号,名称,地址,联络人,电话号码,网站)
物流中心(物流中心编号,名称,联络人,地址,电话号码,网站)
仓库(仓库编号,库名,地址,电话)
存放(产品编号,仓库编号,制造商编号,产品数量,入库时间)
管理(物流中心编号,仓库编号,送货时间,产品单价)
制造(制造商编号,产品编号,产品批次,产品质量)
运输(仓库编号,零售商编号,运输单价)
四、 物理设计
依据以上关系模式构建地数据表结构如表所表示.
表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\wl_system_data.mdf',
size=10mb,maxsize=50mb,filegrowth=2mb
)
LOG ON
(
name='wl_system_log',
filename='C:\SQLhomework\wl_system_log.ldf',
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 管理
(
物流中心编号char(10),
仓库编号char(10),
产品单价int,
送货日期char(10),
primary key(物流中心编号,仓库编号),
Foreign key (物流中心编号) references 物流中心(物流中心编号),
Foreign key (仓库编号) references 仓库(仓库编号)
)
--drop table 管理
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 提取
(
物流中心编号char(10),
产品编号char(10),
货物价格int NOT NULL,
primary key(物流中心编号,产品编号),
Foreign key (物流中心编号) references 物流中心(物流中心编号),
Foreign key (产品编号) references 产品(产品编号)
)
--drop table 提取
3、输入数据(其它9组输入在最终)
insert into 制造商
values
(
'001','钢笔企业','王女士','tian津','2297369','.com'资料个人搜集整理,勿做商业用途
)
insert into 零售商
values
(
'003','学五超市','李女士','舔大','022110','.com'资料个人搜集整理,勿做商业用途
)
insert into 产品
values
(
'998','钢笔','英雄','根','001'
)
insert into 物流中心
values
(
'009','圆通快递','圆通大爷','舔大','02119','.com'
)
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 制造商数据修改
(
@制造商编号char(10),
@联络人char(10)= 联络人, @地址char(20)= 地址,
@电话号码char(10)= 电话号码,@网站char(20)= 网站
)
as
update 制造商
set 制造商编号= @制造商编号, 联络人= @联络人,地址= @地址,电话号码= @电话号码,网站= @网站资料个人搜集整理,勿做商业用途
where 制造商编号= @制造商编号
③ 零售商数据修改:某零售商数据改变时,输入该零售商编号和需修改地属性,完成对零售商地修改
create procedure 零售商数据修改
(
@零售商编号char(10),
@联络人char(10)= 联络人, @地址char(20)= 地址,
@电话号码char(10)= 电话号码,@网站char(20)= 网站
)
as
update 零售商
set 零售商编号= @零售商编号, 联络人= @联络人,
地址= @地址,电话号码= @电话号码,网站= @网站
where 零售商编号= @零售商编号
④物流中心数据修改:某物流中心数据改变时,输入该物流中心编号和需修改地属性,完成对物流中心地修改
create procedure 物流中心数据修改
(
@物流中心编号char(10),
@联络人char(10)= 联络人, @地址char(20)= 地址,
@电话号码char(10)= 电话号码,@网站char(20)= 网站
)
as
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
(
展开阅读全文