物资管理数据库设计说明书.doc_第1页
物资管理数据库设计说明书.doc_第2页
物资管理数据库设计说明书.doc_第3页
物资管理数据库设计说明书.doc_第4页
物资管理数据库设计说明书.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物资管理系统数据库设计说明书1.引言21.1编写目的22支持软件23结构设计23.1概念结构设计23.1.1标识实体及关系23.1.2 ER图33.2逻辑结构设计43.3物理结构设计54运用设计64.1辅助设计64.1.1 触发器64.1.2存储过程74.2安全保密设计121.引言1.1编写目的本文档针对物资管理系统需要使用的物资管理库的外部设计,结构设计,物理结构设计,以及数据库内的定义约定,以及建立的触发器等进行了详细的描述和分析,方便其他开发人员日后对酶系统的理解与维护。1.2背景待开发数据库的名称:物资信息管理数据库使用此数据库的软件系统的名称:物资管理系统此次所开发的物资管理系统由于涉及到大量的物资信息需要管理,所以需要开发一个物资管理数据库对系统经行进行支持。2支持软件开发本数据库采用的软件为Microsoft SQL Server,外部使用ASP .Net连接数据库和对数据库进行访问。3结构设计3.1概念结构设计3.1.1标识实体及关系此系统用于仓库的物资管理,因为仓库管理的大概流程,一般人都有所了解,所以在这不再作详细的阐述。经过分析,得出此系统具有以下几个实体:仓库,物资,库存。 为了加强物资管理系统的安全性,所以必须对使用本系统的人员进行控制和身份验证。所以必须保存管理员的基本信息。因此,标识出管理员实体。对于仓库物资管理,执行最多的动作是物资的入库和出库的处理。所以,可以标识出仓库和物资基本信息有入库和出库两种关系。而库存也受入库和出库的动作的影响,增加和减少库存。下表为实体的具体描述:实体名描述别名事件仓库物资存放的仓房仓房一个仓库可以存0到n种物资物资仓库里存放的各种产品产品,货物一种物资可以被存放到0到n个仓库中管理员管理仓库活动以及维护系统信息的负责人负责人一个管理员根据他的权限管理一个或多个仓库标识出关系并确定多样性约束如下表所示:实体多样性关系多样性实体仓库0,n入库/出库记录0,n物资仓库0,n库存0,n物资管理员0,n管理1,n仓库标识实体以及有关属性如下所示:管理员(id,名字,密码,电话,权限)仓库 (仓库号,名称,地址,面积)物资 (物资编号,物资名称,规格型号,种类,计量单位,单价,最小库存量,最大库存量)关系以及有关属性如下所示:入库/出库记录 (物资编号,仓库号,批号,库存量,负责人,时间)库存 (物资编号,仓库号,库存量)3.1.2 ER图经过设计,得出最终ER图为:物资信息中的种类属性其属性值是限定的几个值,以保证归纳种类的统一性。这部门由应用程序进行限制处理。3.2逻辑结构设计经过对实体和关系的分析,将模型映射成表。映射规则遵循实体,关系与表实行一一对应的规则。但由于入库出库记录虽然属性都一样,但处理的事务完全不同,所以将其映射成入库记录和出库记录两张表,便于信息的维护和管理 。映射后表结构如下:仓库 (仓库号,名称,地址,面积)Primary Key仓库号管理员(id,名字,密码,电话,权限)Primary Key id物资基本信息 (物资编号,物资名称,规格型号,种类,计量单位,单价,最小库存量,最大库存量)Primary Key物资编号入库记录 (物资编号,仓库号,批号,库存量,负责人,时间)Primary Key物资编号,仓库号,批号Foreign Key 物资编号 references 物资基本信息Foreign Key仓库号 references仓库出库记录 (物资编号,仓库号,批号,库存量,负责人,时间)Primary Key物资编号,仓库号,批号Foreign Key 物资编号 references 物资基本信息Foreign Key仓库号 references仓库库存 (物资编号,仓库号,库存量)Primary Key物资编号,仓库号Foreign Key 物资编号 references 物资基本信息Foreign Key仓库号 references仓库3.3物理结构设计对于同一品牌,同一规格型号的物资可以必须使用统一物资编号。如:可以采用产品的条形码。只需将系统装上一个条形码扫描仪,获得产品的条形码号传给系统。入库出库时需要登记负责人,负责人必须是在管理员中有登记并有幸应权限的管理员。入库与出库是必须登记一个批号。同一批号可以对应多条入库(出库)信息。因为在同一批货物处理中,可以有不同的物资,这些物资也可以存放在不同的仓库中。批号由系统自动生成。生成十位字符型批号,生成规则如下所示:第一位是入库出库标志位(o代表出库,i代表入库),二到七位是日期标志,两位表示年,两位表示月,两位表示日,三到十位是表示此批货物是当天处理的第几批货物。如2006年 6月18日出库处理的一批货物,这批货物是当天处理的第三批货物。则按规则生成的批号为:o060618003。4运用设计4.1辅助设计4.1.1 触发器当对仓库进行入库出库处理的时候,需要同时对仓库中的货物库存信息进行同步的更新。所以应此要求,设立触发器,对入库出库操作触发动态更新库存的的动作,使处理自动化,避免了手动更新数据库,以及手动更新过程中带来的错误。此设计增加了系统的自动化特性和安全性。触发器设计如下:插入出库记录时动态更新库存:create trigger 出库更新库存 on 出库记录after insertasdeclare 仓库号 int,物资编号 bigintselect 仓库号=仓库号,物资编号=物资编号 from insertedupdate 库存set 库存量=库存量-(select 数量 from inserted)where 仓库号=仓库号 and 物资编号=物资编号插入入库记录时动态更新库存:create trigger 入库更新库存 on 入库记录after insertasdeclare 仓库号 int,物资编号 bigintselect 仓库号=仓库号,物资编号=物资编号 from insertedif( select count(*) from 库存where 仓库号=仓库号 and 物资编号=物资编号)=1update 库存set 库存量=库存量+(select 数量 from inserted)elseinsert into 库存(物资编号,仓库号,库存量) (select 物资编号,仓库号,数量 from inserted);修改出库数量时级联更新库存:create trigger 出库级联更新 on 出库记录after updateasdeclare 仓库号 int,物资编号 char(10),数量 intselect 仓库号=仓库号,物资编号=物资编号,数量=数量 from insertedupdate 库存set 库存量=库存量+(select 数量 from deleted)-数量where 仓库号=仓库号 and 物资编号=物资编号修改入库数量时级联更新库存:create trigger 入库级联更新 on 入库记录after updateasdeclare 仓库号 int,物资编号 char(10),数量 intselect 仓库号=仓库号,物资编号=物资编号,数量=数量 from insertedupdate 库存set 库存量=库存量-(select 数量 from deleted)+数量where 仓库号=仓库号 and 物资编号=物资编号删除出库记录时动态更新库存:create trigger 删除出库记录 on 出库记录after deleteasdeclare 仓库号 int,物资编号 bigintselect 仓库号=仓库号,物资编号=物资编号 from deletedupdate 库存set 库存量=库存量+(select 数量 from deleted)where 仓库号=仓库号 and 物资编号=物资编号删除入库记录时动态更新库存:create trigger 删除入库记录 on 入库记录after deleteasdeclare 仓库号 int,物资编号 bigintselect 仓库号=仓库号,物资编号=物资编号 from deletedupdate 库存set 库存量=库存量-(select 数量 from deleted)where 仓库号=仓库号 and 物资编号=物资编号4.1.2存储过程为了实现物资管理系统的各种功能,需要对数据库的某些数据进行访问和特定处理。因为外部程序访问数据库速度较慢而且麻烦,所以编写了部分存储过程辅助外部用用程序实现特定数据的访问和处理。 显示所有管理员信息CREATE PROCEDURE UserListAS SELECT dbo.管理员.id, dbo.管理员.名字, dbo.管理员.电话, dbo.管理员.权限FROM dbo.管理员GO 添加管理员信息CREATE PROCEDURE UsersAdd(UID varchar(50), UPassword varchar(50), UPower int, UName varchar(50), UTel varchar(50)AS INSERT INTO 物资管理.dbo.管理员 ( id, 密码,权限,名字,电话) VALUES (UID,UPassword,UPower,UName,UTel)GO 删除管理员信息CREATE PROCEDURE usersdelete(UIDvarchar(50)AS DELETE 物资管理.dbo.管理员 WHERE ( id= UID)GO 查询某个管理员的详细信息CREATE PROCEDURE UsersDetailUIDvarchar(50)AS SELECT dbo.管理员.id, dbo.管理员.名字, dbo.管理员.权限, dbo.管理员.电话FROM dbo.管理员WHERE id=UIDGO 修改管理员基本信息CREATE PROCEDURE UsersModify(UID varchar(50), UPower int, UName varchar(50), UTel varchar(50)AS UPDATE 物资管理.dbo.管理员 SET 权限 = UPower, 名字 = UName, 电话 = UTelWHERE ( id = UID)GO 修改管理员密码CREATE PROCEDURE UsersPasswdModify(UID varchar(50), UPasswordvarchar(50)AS UPDATE 物资管理.dbo.管理员 SET 密码 = UPasswordWHERE ( id = UID)GO 显示所有物资基本信息CREATE PROCEDURE wzListAS SELECT dbo.物资基本信息.物资编号,dbo.物资基本信息.物资名称, dbo.物资基本信息.规格型号, dbo.物资基本信息.种类, dbo.物资基本信息.单价FROM dbo.物资基本信息GO 添加物资基本信息CREATE PROCEDURE wzadd(Gid bigint, Gname char(20),Gguige char(10), Gkind char(10),Gdanwei char(4), Gprice money)AS INSERT INTO 物资管理.dbo.物资基本信息 ( 物资编号, 物资名称,规格型号,种类, 计量单位,单价) VALUES ( Gid,Gname,Gguige,Gkind,Gdanwei, Gprice)GO 删除物资基本信息CREATE PROCEDURE wzDelete(GID int)AS DELETE 物资管理.dbo.物资基本信息 WHERE ( 物资编号 = GID)GO 查询某物资的详细信息CREATE PROCEDURE wzdetailGID BIGINTAS SELECT dbo.物资基本信息.物资编号, dbo.物资基本信息.物资名称, dbo.物资基本信息.规格型号, dbo.物资基本信息.种类, dbo.物资基本信息.计量单位, dbo.物资基本信息.单价FROM dbo.物资基本信息WHERE dbo.物资基本信息.物资编号=GIDGO 修改物资基本信息CREATE PROCEDURE wzmodify(Gid bigint, Gname char(20), Gguige char(10), Gkind char(10), Gdanwei char(4), Gprice money)AS UPDATE 物资管理.dbo.物资基本信息 SET 物资编号=Gid,物资名称=Gname,规格型号=Gguige, 种类=Gkind,计量单位=Gdanwei, 单价=Gprice WHERE ( 物资编号 = Gid)GO 查看物资余额信息CREATE PROCEDURE yelist ASSELECT *FROM dbo.余额详单GO 查询某个物资的余额信息CREATE PROCEDURE yelookup(id bigint)ASSELECT *FROM dbo.余额详单WHERE( 物资编号 = id)GO 查看入库记录CREATE PROCEDURE outlist ASSELECT *FROM dbo.出库记录GO 查看出库记录CREATE PROCEDURE inlist ASSELECT *FROM dbo.入库记录GO 查看存放规则信息CREATE PROCEDURE gzlist ASSELECT dbo.物资基本信息.物资编号, dbo.物资基本信息.物资名称, dbo.物资基本信息.规格型号, dbo.物资基本信息.计量单位, dbo.物资基本信息.最大库存量, dbo.物资基本信息.最小库存量FROM dbo.物资基本信息GO 修改存放规则CREATE PROCEDURE gzmodify(ID int, MAX int, MIN int)AS UPDATE 物资管理.dbo.物资基本信息SET 最大库存量 = MAX, 最小库存量 = MINWHERE ( 物资编号 = ID)GO 添加仓库信息CREATE PROCEDURE ckadd(WID int, WName varchar(20), WArea float, WAddress varchar(50)AS INSERT INTO 物资管理.dbo.仓库 (仓库号, 名称, 面积, 地址) VALUES ( WID, WName, WArea, WAddress)GO 删除仓库信息CREATE PROCEDURE ckdelete(WID int)AS delete 物资管理.dbo.仓库 WHERE ( 仓库号 = WID)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论