1、供给链管理系统数据库设计1. 系统需求分析a. 经过建立供给链数据库建立以方便多种信息查询和管理工作。b. 系统简述:本系统包含六个实体:生产商;运输商;商场;仓库;商品;用户包含四个关系转为四个表:运输;生产;销售;储存。c. 对该数据库进行以下数据处理:查询:查询其商场全部信息,输入商场编号,输出信息 查询某种商品生产、运输、商场信息,输入商品编号,输出生产商、运输时间、运输商、销售商场 商场想查询某一类商品储存仓库信息,输入商品编号,输出仓库编号地址、储存时间 查询商品列表里各类商品个数,并按类型分组。.插入:在商品表中插入新商品 插入新销售统计插入新运输统计.修改:修改旧商品价格修改运
2、输统计二系统概念模型(E-R图)实体关系图:运输生产商用户商品仓库商场运输商生产销售储存实体属性图:生产商地址生产商生产商类型生产商名称生产商编号生产商注册年份运输商地址运输商运输商名称运输商编号运输商注册年份运输商拥有车辆商场地址商场商场名称商场编号编号商场注册年份商场规模用户年纪用户用户性别用户姓名编号用户身份证号仓库仓库编号仓库地址编号仓库存放价格商品商品编号商品名称编号商品价格商品类型关系属性图:生产商编号商品编号生产时间生产编号生产运输编号编号地址运输时间商场编号生产商编号运输商编号运输商品编号用户身份证号商品编号销售时间销售编号销售商场编号仓库编号编号地址储存编号时间所属商场储存时
3、间编号储存商品编号三、关系模式(加下划线是主键)生产商关系:(生产商编号,生产商名称,生产商地址,生产商类型,生产商注册年份)运输商关系:(运输商编号,运输商名称,运输商注册年份,运输商地址,运输商车辆数)商场关系:(商场编号, 商场名称, 商场注册年份, 商场地址, 商场规模)用户关系:(用户身份证号, 用户姓名, 用户年纪,用户性别)仓库关系:(仓库编号, 仓库地址, 仓库存放价格)商品关系:(商品编号, 商品名称, 商品价格, 商品类型)生产关系:(生产编号, 商品编号,生产商编号, 生产时间)运输关系:(运输编号, 商场编号, 生产商编号, 商品编号, 运输时间, 运输商编号)销售关系
4、:(用户身份证号, 商场编号, 商品编号, 销售编号, 销售时间)储存关系:(储存编号, 商品编号, 仓库编号, 储存时间,所属商场)四、物理设计生产商:字段名类型特殊属性生产商编号char(20)主键生产商名称char(20)not null生产商地址char(20)not null生产商类型char(20)生产商注册年份datetimenot null运输商:字段名类型特殊属性运输商编号char(20)主键运输商名称char(10)not null运输商注册年份datetimenot null运输商地址char(20)not null运输商车辆数 intnot null商场:字段名类型特殊
5、属性商场编号char(20)主键商场名称char(10)not null商场注册年份datetimenot null商场地址char(20)not null商场规模char(20)not null用户: 字段名类型特殊属性用户身份证号char(20)主键用户姓名char(10)not null用户性别char(2)not null用户年纪intnot null仓库字段名类型特殊属性仓库编号char(20)主键仓库地址char(10)not null仓库存放价格moneynot null商品: 字段名类型特殊属性商品编号char(20)主键商品名称char(10)not null商品类型char
6、(20)not null商品价格moneynot null生产:字段名类型特殊属性生产编号char(20)主键生产商编号char(10)外键商品编号char(20)not null生产时间datetimenot null运输:字段名类型特殊属性运输编号char(20)主键运输商编号char(10)外键商场编号 Char(20) nut null商品编号char(20)not null生产商编号char(20)not null运输时间datetime销售:字段名类型特殊属性销售编号 Char(10) 主键商场编号char(10)not null销售时间char(20)not null商品编号ch
7、ar(20)外键用户身份证号char(20)not null储存:字段名类型特殊属性储存编号char(20)主键仓库编号char(10)外键商品编号 Char(20) not null储存时间char(20)not null所属商场char(20)not null五、系统实现1.数据库及其基础表建立数据库建立用企业管理器,基础表用T-SQL语言:数据库名:PM-System建立数据库T-SQL语句以下:Create database PM-SystemOn(name=pm_system_data,filename=E:数据库 sm_system_data.mdf)Log on(name=pm_
8、system_log,filename=E: 数据库sm_system_data.ldf)建立表SQL语句以下:Use PM_SystemCreate table 生产商(生产商编号 char(20) primary key,生产商名称 char(20) not null,生产商地址 char(20) not null,生产商类型 char(20),生产商注册年份 datetime not null )Create table 运输商(运输商编号 char(20) primary key,运输商名称 char(10) not null,运输商注册年份 datetime not null,运输商
9、地址 char(20) not null,运输商车辆数 int not null)Create table 商场(商场编号 char(20) primary key,商场名称 char(10) not null,商场地址 char(20) not null,商场注册年份 datetime not null,商场规模 char(20) not null)Create table 用户(用户身份证号 char(20) primary key,用户姓名 char(10) not null,用户年纪 int,用户性别 char(2) not null)Create table 仓库(仓库编号 char
10、(20) primary key,仓库地址 char(10) not null,仓库存放价格 money not null)Create table 商品(商品编号 char(20) primary key,商品名称 char(10) not null,商品价格 money not null,商品类型 char(20) not null)Create table 生产(生产编号 char(20) primary key,商品编号 char(20) not null,生产商编号 char(20) not null references 生产商(生产商编号),生产时间 datetime not n
11、ull)Create table 运输(运输编号 char(20) primary key,商场编号 Char(20) nut null,生产商编号 char(20) not null,商品编号 char(20) not null,运输时间 datetime,运输商编号 char(20) not null references 运输商(运输商编号) )Create table 销售(用户身份证号 char(20) not null,商场编号 char(20) not null,商品编号 char(20) not null references 商品(商品编号),销售编号 Char(10) pr
12、imary key,销售时间 char(20) not null)Create table 存放( 储存编号 char(20) pimary key,商品编号 Char(20) not null,仓库编号 char(20) not null references 仓库(仓库编号),储存时间 char(20) not null,所属商场 char(20) not null)输入数据:Insert into 生产商 values(0001,可口可乐,北京,食品,.01.01)Insert into 生产商 values(0002,百事可乐,天津,食品,.01.02)Insert into 生产商
13、values(0003,ADIDAS运动鞋,北京,鞋帽,.02.01)Insert into 生产商 values(0004,Audi A4,北京,汽车,.03.01)Insert into 生产商 values(0005,麦当劳,北京,食品,.04.01)Insert into 运输 values(0001,运一,.09.01,北京,10)Insert into运输values(0002,运二,.01.01,北京,20)Insert into运输values(0003,运三,.02.02,天津,30)Insert into运输values(0004,运四,.09.01,天津,40)Inser
14、t into运输values(0005,运五,1997.01.02,上海,20)Insert into 商场 values(0001,商场一,天津.01.01,大)Insert into商场values(0002,商场二,北京.01.01,小)Insert into商场values(0003,商场三,上海.02.02,小)Insert into商场values(0004,商场四,长沙.03.01,大)Insert into 仓库 values(0001,上海1000)Insert into仓库 values(0002,天津,500)Insert into仓库 values(0003,天津,10
15、00)Insert into仓库 values(0004,北京,)Insert into 商品 values(0001,百事可乐,5,食品)Insert into商品values(0002,美年达,4,食品)Insert into商品values(0003,可口可乐,4,食品)Insert into商品values(0004,汉堡,10,食品)Insert into商品values(0005,Audi A5,300000,汽车)Insert into商品values(0001,Audi A6,400000,汽车)Insert into商品values(0002,Audi A4,00,汽车)In
16、sert into商品values(0003,ADIDAS运动鞋1,300,鞋帽)Insert into商品values(0004,ADIDAS运动鞋2,400,鞋帽)Insert into商品values(0005,ADIDAS运动鞋3,500,鞋帽)Insert into 用户 values(300901,赵一,20,女)Insert into 用户values(300920,钱二,19,男)Insert into 用户values(,李三,21,女)Insert into 用户values(,王五,22,男)Insert into 生产 values(0001,0001,0002,.09
17、.05)Insert into 生产 values(0002,0003,0002,.09.01)Insert into 生产 values(0003,0003,0001,.07,03)Insert into 生产 values(0004,0004,0005,.07.04)Insert into生产values(0005,0005,0004,.07,05)Insert into生产values(0006,0006,0004,.07.06)Insert into生产values(0007,0007,0003,.07.07)Insert into生产values(0008,0008,0003,.07
18、.08)Insert into生产values(0009,0009,0003,.07.09)Insert into生产values(0010,0010,0003,.07.10)Insert into 运输 values(1,0001,0002,0001,.09.05,0001)Insert into 运输 values(2,0004,0002,0002,.09.01,0002)Insert into运输values(3,0003,0001,0004,.07,03,0004)Insert into运输values(4,0003,0005,0003,.07.04,0005)Insert into运
19、输values(5,0005,0004,0003,.07,05,0002)Insert into运输values(6,0006,0004,0002,.07.06,0005)Insert into运输values(7,0003,0003,0001,.07.07,0003)Insert into运输values(8,0002,0003,0002,.07.08,0002)Insert into运输values(9,0006,0003,0001,.07.09,0001)Insert into运输values(10,0005,0003,0002,.07.10,0001)Insert into 销售 va
20、lues(2107021,0001,0001,0001,.01.01)Insert into 销售values(2030001,0001,0002,20,女)Insert into 销售values(2090008,0001,0003,20,女)Insert into 销售values(18,0003,0004,20,女)Insert into 销售values(3107021,0002,0005,20,女)Insert into 销售values(2109341,0002,0006,20,女)Insert into 销售values(2107021,0004,0007,20,女)Insert
21、 into 储存 values(0001,0003,0001,.11.01 ,0001)Insert into 储存 values(0002,0002,0001,.11.05,0003)Insert into 储存 values(0003,0001,0002,.11.10,0004)2.创建索引create nonclustered index idx生产商on生产商(生产商编号)create nonclusteredindex idx运输on运输(生产商编号)create nonclusteredindex idx运输2on运输(商场编号)create nonclusteredindex i
22、dx商场on商场(商场编号)create nonclusteredindex idx储存on储存(仓库编号)create nonclusteredindex idx仓库on仓库(仓库编号)3.创建视图create view 供给链图asselect 生产商名称,运输商名称,商场名称,商品.商品编号,运输时间, 商品类型, 生产时间from 生产商 join 运输 on 生产商.生产商编号=运输.生产商编号 join 运输商 on 运输商.运输商编号=运输.运输商编号 join 商场 on 商场.商场编号=运输.商场编号join 商品 on 商品.商品编号=运输.商品编号 join 生产 on
23、生产. 商品编号=商品.商品编号create view 存放图asselect 仓库.仓库编号,商品编号,所属商场from 商场 join 存放 on 商场.商场编号=存放.所属商场 join 仓库 on 仓库.仓库编号=存放.仓库编号4创建存放过程查询:create procedure 商场信息 shopID char(10)asbegin print list of the information of this shop select 商场名称,商场地址,商场规模,商场注册年份 from 商场 where 商场编号=shopIDendcreate procedure 供给链信息 good
24、ID char(20)asbegin print list of the information of this goods provide select 生产商名称,运输商名称,商场名称 from 供给链图 where 商品编号=goodIDendcreate procedure 储存信息 goodID char(20)asbegin print list of the storage select 仓库编号,商品编号,所属商场 from 存放图 where 商品编号=goodIDendcreate procedure 分类信息 goodID char(20)asbeginselect 商品
25、类型,count(*)from 商品group by 商品类型end插入:create procedure 插入商品信息 goodID char(20), goodname char(10), goodprice money , goodtype char(20)asinsert into 商品values(goodID, goodname, goodprice, goodtype)create procedure 插入销售统计 personid char(20), shopnameID char(20), goodid char(20), sellID char(20),selltime d
26、atetimeasinsert into 销售values(personid, shopnameID, goodid, sellID, selltime)修改Create procedure 修改商品价格 goodprice money,goodid char(20)AsUpdate 商品Set 商品价格goodpriceWhere 商品编号goodid Create procedure 修改运输统计 oldtid char(20),tid char(20),shopid char(20),tpid char(20),goodid char(20),time datetime,fid char(20)As update 运输Set 运输编号=tid,运输商编号tpid,生产商编号=fid,商品编号=goodid,运输时间time,商品编号shopidWhere 运输编号oldtid