1、四、逻辑结构设计.5五、物理结构设计.65.1关系模式存取方式选择.65.2确定数据库的存储结构.65.3评价物理结构.6六、数据库的实施. 6七、设计总结. .8 工厂物料管理系统一、系统概述实现物料的分类管理,实现部门和员工信息管理; 实现物料的入库和领用管理; 实现物料的转仓管理; 创建触发器,实现物料入库和领用时相应物料库存的自动更新; 创建触发器,实现转仓时转入仓库物料增加、转出仓库物料减少; 创建存储过程统计数量和领用数量; 建立数据库相关表之间的参照完整性约束二、需求分析2.1信息分析我们根据对工厂物料管理方面的知识和在网络上取得的信息资料,得出系统的信息需求和处理要求,得到设计
2、所需的需求信息。这些信息是是选择了对数据库设计直接有用的信息。2.2系统流程图数据库字典员工表(ygb)属性名字段名称类型是否为空备注员工编号(主键)ygbhChar(10)Not null物料编号员工姓名ygxmChar(20)物料名称员工电话ygdhChar(17)规格职称zc描述部门表(bmb)部门号(主键)bmh部门名bmmChar(40)部门号仓库表(ckb)仓库编号(主键)ckbh 仓库编号物料编号(主键)wlbh物料数量wlxlint物料表(wlb)wlmcggmstext仓库管理员表(ckglyb)管理员编号(主键)glybh姓名 xm电话 dh 员工和部门表(yghbmb)员
3、工编号员工和物料表(yghwlb) ygbh wlbh领取数量lqsl出入库表(crkb)管理员编号ckbh出入标志crbzChar(2)时间数量sl转仓表 (zhuanc)动作编号(主键)dzbh仓库编号1仓库编号2sjdate3.1概念结构设计(E-R)模型实体;部门;部门号,部门名, 员工编号员工; 员工编号,姓名,电话,职称仓库管理员;管理员编号,姓名,电话仓库;仓库号 物料;物料编号,物料名称,规格,单价 实体联系:员工和部门;一个员工属于一个部门,一个部门可以有多个员工,属于多对一的关系.员工和物料;物料由员工领用,一个员工可以领到多种物料,不同的物料也可以有不同的员工来领,它们属
4、于多对多的关系 仓库和仓库管理员;一个仓库可以有多个管理员,一个管理员只在一个仓库工作,属于一对多的关系仓库管理员和物料;一个管理员在一个仓库工作,一个仓库可以有多个管理员,属于一对多的关系.3.2全体E-R图存储代码长度3.2关系模式部门(部门号,部门名)员工(员工编号,姓名,电话,职称)仓库管理员(管理员编号,姓名,电话)仓库(仓库号 )物料(物料编号,物料名称,规格,单价)四、逻辑结构设计五、物理结构设计/*建数据库*/create database gcwlon primary(name=gcwl,=D:gcwl.mdf,size=3MB,maxsize=50MB,=20%)log o
5、n(name=gcwl_log,gcwl_log.ldfmaxsize=200MB,=10MBgo/*建表及约束、主外键*/use gcwlcreate table yg(ygbh char(10) not null primary key, ygxm char(20) not null, ygdh char(17) null)create table bm(bmh char(10) not null primary key, ygbh (ygbh char(10) not null primary key, bmm char(40) null)create table wl(wlbh cha
6、r(10) not null primary key, wlmc char(20) not null, gg char(20) null, ms text null)create table ck(ckbh char(10) not null, wlbh char(10) not null, primary key(ckbh,wlbh), wlsl int not null constraint default_sl default 0)create table ckgly(glybh char(10) not null primary key, xm char(10) null, dh ch
7、ar(20) null)create table yglwl(ygbh char(10) not null, wlbh char(20) not null, lqsl int not null, primary key(ygbh,wlbh,lqsl), foreign key(ygbh) references yg(ygbh), foreign key(wlbh) references wl(wlbh)create table crk(glybh char(10) not null, ckbh char(10) not null, crbz char(2) not null, sj char(
8、16) not null constraint default_sj default convert(char(16),getdate(),120), sl int not null, primary key (wlbh,glybh,ckbh,sj), foreign key(wlbh) references wl(wlbh), foreign key(glybh) references ckgly(glybh), foreign key(ckbh) references ck(ckbh)create table zhuanc(dzbh char(10) primary key, glybh
9、char(10) not null, ckbh1 char(10) not null, ckbh2 char(10) not null, wlbh char(10) not null, sl char(10) not null, foreign key(glybh) references ckgly(glybh), foreign key(ckbh1) references ck(ckbh), foreign key(ckbh2) references ck(ckbh), foreign key(wlbh) references wl(wlbh)/*触发器-出入库管理*/create trig
10、ger tri_crkon crk for insertasdeclare crbz char(2),wlbh char(10),ckbh char(10),sl intselect crbz=crbz from insertedselect wlbh=wlbh from insertedselect sl=sl from insertedselect ckbh=ckbh from insertedif crbz=入 begin if wlbh not in(select wlbh from ck) insert ck(ckbh,wlbh) values(ckbh,wlbh) update c
11、k set wlsl=wlsl+sl where ckbh=ckbh and wlbh=wlbh endelse if (select sl from ck where wlbh=wlbh and ckbh=ckbh)(select sl from ck where wlbh=wlbh and ckbh=ckbh1) print not enough! rollbackinsert crk(glybh,ckbh,wlbh,crbz,sl) values(glybh,ckbh2,wlbh,sl)insert crk(glybh,ckbh,wlbh,crbz,sl) values(glybh,ck
12、bh1,wlbh,出/*存储过程-查询各仓库各物料现存数量*/create procedure tjslselect ckbh,wlbh,wlsl from ck/*指定时间内出入库数量*/create procedure cxcrkaishi char(10),jieshu char(10)select wlbh,crbz,sl from crkwhere sj between kaishi and jieshugroup by wlbh,crbz,sl总结:通过这次课程设计,熟悉了ER模式的图的画法,数据库的操作,以及数据在数据库中的运用模式。通过SQL语言实现数据库的设计。学习了分析了各个子系统的属性、实体间的联系以及子系统间的关系。并且利用SQL语言建立数据库运行并且实现。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1