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

  • 格式:doc
  • 大小:211.00 KB
  • 文档页数:31

物流管理信息系统的数据库设计班级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 产品表结构表2 零售商结构表3 制造商结构表4 物流中心结构表5 仓库表结构表6 存放表结构表7 管理表结构表8 制造表结构表9 运输表结构表10 提取表结构五、系统实现1、数据库及其基本表的建立数据库的建立用企业管理器,基本表的建立用T—SQL语句。

数据库名称:WL_System1、创建表Create database WL_Systemon(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_SystemGoCreate 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','.kengni.' )insert into零售商values('003','学五超市','女士','舔大','022110','.kengnitju.' )insert into产品values('998','钢笔','英雄','根','001')insert into物流中心values('009','圆通快递','圆通大爷','舔大','02119','.yt.')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制造商Ion制造商(制造商编号)Create nonclustered index零售商Ion零售商(零售商编号)(2)create index物流中心Ion物流中心(物流中心编号)create index库存on仓库(库名,地址)5、创建视图Create view vw制造商AsSelect名称,联系人,地址,,from制造商Create view vw零售商AsSelect名称,联系人,地址,,from零售商6、创建存储过程--存储过程~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(1)数据检索1、制造商、零售商查询某一产品名称,规格和单位输入:产品编号输出:产品名称,产品规格,产品单位,制造商编号Create procedure产品_into(No char(10)=null)Asif No is nullbeginprint'请输入产品编号'endelsebeginSelect产品名称,产品规格,产品单位,制造商编号from产品where No =产品.产品编号Endexecute产品_into '998'--drop procedure 产品_into2、物流中心、制造商查询某一零售商名称,联系人,地址,,网址输入:零售商编号输出:零售商名称,联系人,地址,,网址Create procedure零售商_into(No char(10)=null)Asif No is nullbeginprint'请输入零售商编号'endelsebeginSelect名称,联系人,地址,,from零售商where No =零售商.零售商编号end--drop procedure 零售商_intoexecute零售商_into '003'3、零售商、物流中心查询某一制造商信息表输入:制造商编号输出:制造商名称,联系人,地址,,网址Create procedure制造商_into(No char(10)=null)Asif No is nullbeginprint'请输入制造商编号'endelsebeginSelect名称,联系人,地址,,from制造商where No =制造商.制造商编号end--drop procedure 制造商_intoexecute制造商_into '002'4、物流中心、制造商、零售商查询某一产品的出库信息表输入:仓库编号输出:仓库编号,库名,地址,Create procedure仓库_into (No char(10)=null)Asif No is nullbeginprint'请输入仓库编号'endelsebeginSelect仓库编号,库名,地址,from仓库where No =仓库.仓库编号end--drop procedure 仓库_intoexecute仓库_into '001'5、物流中心、零售商查询某一产品的制造商和产品信息表输入:产品编号编号输出:制造商名称,联系人,地址,,,产品名称,产品名称,产品规格,产品单位Create procedure制造商_产品_into(No char(10)=null)Asif No is nullbeginprint'输入错误,请提供产品编号,即可获得制造商和产品的信息' endelsebeginSelect制造商.名称,联系人,地址,,,产品.产品名称,产品名称,产品规格,产品单位From制造商,产品where制造商.制造商编号=产品.制造商编号and No=产品.产品编号endexecute制造商_产品_into '998'--哇咔咔咔咔咔^试了这么久终于成功了!!!后面的逗号哭瞎了!!两个表真有成就感哈哈~!--drop procedure 制造商_产品_into编号及产品信息输入:产品编号6、查询某一产品对应的物流中心输出:物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位Create procedure提取_产品_into(No char(10)=null)Asif No is nullbeginprint'请提供产品编号,即可获得物流和产品的信息'endelsebeginSelect物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品名称,产品规格,产品单位from提取inner join产品on产品.产品编号=产品.产品编号where No =产品.产品编号endexecute提取_产品_into '998'7、制造商,零售商查询某一物流中心信息输入:物流中心编号输出:物理中心名称,联系人,地址,,网址Create procedure物流中心_into(No char(10)=null)Asif No is nullbeginprint'请输入物流中心编号'endelsebeginSelect名称,联系人,地址,,from物流中心where No =物流中心.物流中心编号end--drop procedure 物流中心_intoexecute物流中心_into '009'8、输入产品编号,输出产品信息,物流中心信息,制造商信息Create procedure产品_提取_物流中心_制造商_into(No char(10)=null)Asif No is nullbeginprint'输入错误,请提供产品编号,即可获得物流和产品的信息'endelsebeginSelect物流中心.物流中心编号,货物价格,提取.产品编号,产品.产品名称,产品规格,产品单位,制造商.制造商编号,制造商.名称as制造商名称,物流中心.名称as物流名称,物流中心.as物流from提取,产品,制造商,物流中心where No =产品.产品编号and提取.产品编号=产品.产品编号and产品.制造商编号=制造商.制造商编号and物流中心.物流中心编号=提取.物流中心编号end--drop procedure 产品_提取_物流中心_制造商_intoexec产品_提取_物流中心_制造商_into '998'(2)数据插入插入产品数据create procedure产品数据插入(产品编号char(10),产品名称char(20),产品规格char(10),产品单位char(10),制造商编号char(10))asinsert into产品values(产品编号,产品名称,产品规格,产品单位,制造商编号)execute产品数据插入'111','铅笔','中华','支','002'execute制造商_产品_into '111'插入制造商、零售商、物流中心数据create procedure数据零售商插入(零售商编号char(10),联系人char(10),地址char(10),char(10),网址char(20))asinsert into产品values(零售商编号,联系人,地址,,网址)create procedure数据制造商插入(制造商编号char(10),联系人char(10),地址char(10),char(10),网址char(20))asinsert into产品values(制造商编号,联系人,地址,,网址)create procedure数据物流中心插入(物流中心编号char(10),联系人char(10),地址char(10),char(10),网址char(20))asinsert into产品values(物流中心编号,联系人,地址,,网址)(3)数据修改①产品数据修改:某产品数据变化时,输入该产品编号以及需修改的属性,完成对产品表的修改create procedure产品数据修改(产品编号char(10),产品名称char(20)=产品名称,产品规格char(10)=产品规格,产品单位char(10)=产品单位,制造商编号char(10)=制造商编号)asupdate产品set产品名称=产品名称,产品规格=产品规格,产品单位=产品单位,制造商编号=制造商编号where产品编号=产品编号execute产品数据修改'998','英雄2','黑笔','支','002'②制造商数据修改:某制造商数据变化时,输入该制造商编号以及需修改的属性,完成对制造商表的修改create procedure制造商数据修改(制造商编号char(10),联系人char(10)=联系人,地址char(20)=地址,char(10)=,char(20)=)asupdate制造商set制造商编号=制造商编号,联系人=联系人,地址=地址,=,=where制造商编号=制造商编号③零售商数据修改:某零售商数据变化时,输入该零售商编号以及需修改的属性,完成对零售商的修改create procedure零售商数据修改(零售商编号char(10),联系人char(10)=联系人,地址char(20)=地址,char(10)=,char(20)=)asupdate零售商set零售商编号=零售商编号,联系人=联系人,地址=地址,=,=where零售商编号=零售商编号④物流中心数据修改:某物流中心数据变化时,输入该物流中心编号以及需修改的属性,完成对物流中心的修改create procedure物流中心数据修改(物流中心编号char(10),联系人char(10)=联系人,地址char(20)=地址,char(10)=,char(20)=)asupdate物流中心set物流中心编号=物流中心编号,联系人=联系人,地址=地址,=,=where物流中心编号=物流中心编号--以下输入剩余组数据--9--开始输入数据insert into制造商values('999','百货公司','9女士','城市','999999','.999zz.' )insert into零售商values('99','超市','9先生','零售商','0009990','.99ls9.' )insert into产品values('0009','产品','神秘品牌','根','999')insert into物流中心values('9','9通快递','9通大爷','大','090909','.9.'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','.888zz.' )insert into零售商values('88','超市','8先生','零售商','0008880','.88ls8.'insert into产品values('0008','产品','神秘品牌','根','888')insert into物流中心values('8','8通快递','8通大爷','大','080808','.8.' )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','.777zz.' )insert into零售商values('77','超市','7先生','零售商','0007770','.77ls7.' )insert into产品values('0007','产品','神秘品牌','根','777')insert into物流中心values('7','7通快递','7通大爷','大','070707','.7.')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','.666zz.' )insert into零售商values('66','超市','6先生','零售商','0006660','.66ls6.' )insert into产品values('0006','产品','神秘品牌','根','666')insert into物流中心values('6','6通快递','6通大爷','大','060606','.6.')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','.555zz.' )insert into零售商values('55','超市','5先生','零售商','0005550','.55ls5.' )insert into产品values('0005','产品','神秘品牌','根','555')insert into物流中心values('5','5通快递','5通大爷','大','050505','.5.')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','.444zz.' )insert into零售商values('44','超市','4先生','零售商','0004440','.44ls4.' )insert into产品values('0004','产品','神秘品牌','根','444'insert into物流中心values('4','4通快递','4通大爷','大','040404','.4.')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','.333zz.'insert into零售商values('33','超市','3先生','零售商','0003330','.33ls3.' )insert into产品values('0003','产品','神秘品牌','根','333')insert into物流中心values('3','3通快递','3通大爷','大','030303','.3.')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','.222zz.' )insert into零售商values('22','超市','2先生','零售商','0002220','.22ls2.' )insert into产品values('0002','产品','神秘品牌','根','222')insert into物流中心values('2','2通快递','2通大爷','大','020202','.2.')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','.111zz.' )insert into零售商values('11','超市','1先生','零售商','0001110','.11ls1.' )insert into产品values('0001','产品','神秘品牌','根','111')insert into物流中心values('1','1通快递','1通大爷','大','010101','.1.')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。