企业仓库管理系统数据库设计

合集下载

数据库课程设计 仓库管理系统数据库的设计与实现

数据库课程设计  仓库管理系统数据库的设计与实现

仓库管理系统数据库设计与实现一.实验时间、地点时间:第十三周(11月21日——25日)地点:软件楼305二.实验目的通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。

三、课程设计要求:1.对各个系统进行系统功能需求分析2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建立存储过程7. 根据功能需求建立相应的触发器以保证数据的一致性8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)四.仓库管理系统实验要求描述:设计一个仓库管理系统,实现下列功能:1.零件信息登记(包括种类,名称和库存数量等信息);2.零件进库登记(包括种类,名称和库存数量等信息);3.零件出库登记(包括种类,名称和库存数量等信息);五.实现思路1.关系模式零件信息表(零件编号,零件名,单价,数量,零件类型号,生产厂家号)生产商情况表(生产厂家号,生产厂家名,生产厂家地址,生产厂家电话)入库登记表(零件编号,零件名,入库数量,零件类型,生产厂家号,入库时间)出库登记表(零件编号,零件名,出库数量,出库时间)零件类型信息表(零件类型号,类型)2.设计思路仓库管理系统设计了五个二维表,他们的设计表如下(1)零件信息设计表(2)生产商情况设计表(3)入库登记设计表(4)出库登记设计表(5)零件类型信息设计表3.仓库管理系统全局E—R图零件信息重量单价数量零件编号 零件类型号颜色 出库入库入库登记零件编号零件名入库数量 入库时间出库时间颜色生产商号零件类型生产 商号零件名 零件编号零件名出库 数量出库 性质提货人员出 库 登 记六.实现过程create database 仓库管理系统 on (name=仓库_dat,Filename='e:\microsoft SQL Server\MSSQL\Date\仓库.mdf', Size=10, Maxsize=150 )Log on (name=仓库_log,Filename='e:\microsoft SQL Server\MSSQL\Date\仓库.ldf', Size=10, Maxsize=80 )create table 零件信息表(零件编号 char(10) primary key, 零件名 char(10) not null,单价 money constraint 单价_Chk check(单价 between 80 and 660), 数量 int,零件类型号 char(10),生产商情况 生产商生产商名 生产商号零件类型生产厂家电用途 类型零件类型零件信息卖 出 类型生产厂家号 char(6));select * from 零件信息设计表/***创建并查询零件信息表索引***/create unique index 零件信息_index on 零件信息表(零件编号) exec Sp_helpindex 零件信息表create table 生产厂家信息表(生产厂家号 char(6) primary key ,生产厂家名 varchar(16) not null,生产厂家地址 varchar(40),生产厂家电话 char(12));select * from 生产厂家信息表/***创建并查询生产厂家信息索引***/create index 生产厂家信息_index on 生产厂家信息表(生产厂家号)exec Sp_helpindex 零件信息表create table 零件类型信息表(零件类型号 char(10) primary key,类型 char(10);select * from 零件信息设计类型表/***创建并查询零件类型信息索引***/create index 零件类型信息表_index on 零件类型信息表(零件类型号) exec Sp_helpindex 零件类型信息表create table 入库登记表(零件编号 char(10),零件名 char(10) not null,入库数量 int,零件类型 char(8),生产厂家号 char(6),入库时间 datetime);select * from 入库登记设计表/***创建并查询入库登记表索引***/create index 入库登记表_index on 入库登记表(零件编号)exec Sp_helpindex 入库登记表create table 出库登记表(零件编号 char(10),零件名 char(10),出库数量 int,出库时间 datetime);select * from 出库登记设计表/***创建出库登记表索引***/create index 入库登记表_index1 on 出库登记表(零件编号)create index 入库登记表_index2 on 出库登记表(出库数量)create index 入库登记表_index3 on 出库登记表(出库时间)/***查询零件名为“硬盘”的信息***/select 零件编号,零件名,单价,数量,生产厂家信息表.生产厂家名,生产厂家地址,生产厂家电话,零件信息类型设计表.类型from 零件信息表,生产厂家信息表,零件信息类型设计表where(零件信息设计表.零件类型号=零件信息类型设计表.零件类型号and 生产厂家信息设计表.生产厂家号=零件信息设计表.生产厂家号and 零件名='硬盘')查询结果为:/***创建零件信息表视图***/create view v_lj as select * from 零件信息表/***创建生产厂家信息表视图***/create view v_sc as select * from 生产厂家信息表create view select_零件信息表 asselect 零件信息设计表.零件编号,零件信息设计表.零件名,零件信息设计表.零件类型号 from 零件信息设计表inner join 零件信息类型设计表 on 零件信息设计表.零件类型号 = 零件类型信息设计表.零件类型号/***创建数量在200—900之间的规则,并绑定规则***/create rule 数量_ruleas @数量>=200 and @数量<=900exec sp_helptext'数量_rule'exec sp_bindrule'数量_rule','零件信息表.数量'exec sp_unbindrule'零件信息表.数量'drop rule 数量_rule/***创建向表中添加信息的存储过程***/create procedure insert_零件信息( @零件编号 char(10),@零件名 char(10),@单价 money,@数量 int,@零件类型号 char(10),@生产厂家号 char(6))asinsert into 零件信息表 values(@零件编号,@零件名,@单价,@数量,@零件类型号,@生产厂家号)exec insert_零件信息 @零件编号='001',@零件名='鼠标',@单价=80,@数量='1000',@零件类型号='L1',@生产厂家号='01'select * from 零件信息表/***删除存储过程***/drop procedure insert_零件信息/***创建触发器并向利用触发器向表内添加信息***/create trigger ChangDisplayon 零件信息表for insertasselect * from 零件信息表insert into 零件信息表 values('002','数据线',80,'800','L2','06')七.实验总结本系统是一个面向小型企业,具有一定实用性的数据库仓库管理系统。

仓库管理系统数据库设计课程设计

仓库管理系统数据库设计课程设计

仓库管理系统的应用和发展
仓库管理系统概述:介绍仓库管理系统的发展历程、应用领域和重要性。 仓库管理系统应用现状:分析当前仓库管理系统的应用现状,包括企业规模、行业分布、地域分布等。 仓库管理系统发展趋势:探讨仓库管理系统的发展趋势,包括技术、功能、应用等方面的变化。 课程设计背景:介绍本次课程设计的背景,包括课程目标、设计要求、设计内容等。
安全性原则: 保护数据不 被未经授权 的访问和篡 改
性能优化原 则:提高数 据查询和处 理的速度和 效率
数据库设计规范
数据库设计原则:满足用户需求,保证数据一致性、完整性、安全性
数据库设计规范:采用统一的数据命名规范、数据类型规范、数据存储规范等
数据库设计流程:需求分析、概念设计、逻辑设计、物理设计、实施与维护
出库记录与查询:系统记录每笔出库操作,并可查询历史出库记录,方便管理和追溯
库存管理
库存查询:实时查 询仓库库存数量和 状态
库存预警:设定安 全库存阈值,低于 预警线及时提醒
库存盘点:定期对 仓库库存进行盘点 ,确保数据准确性
库存调拨:在不同 仓库之间进行库存 调拨,满足客户需 求
报表生成与查询
报表内容:详细记录仓库的 进货、销售、库存等信息
添加标题
数据库设计可以保证数据安全性:通过数据库设计,可以设置合适的数据 访问权限和数据加密方式,保证数据的安全性。
仓库管理系统功能需求 分析
货物入库流程:描述货物入库的具 体流程,包括货物的接收、检验、 入库等环节。
货物入库管理
入库数据核对:说明如何核对入库 数据,确保数据的准确性和完整性。
添加标题
触发器条件:WHEN INSERTING, UPDATING, DELETING

企业仓库管理系统数据库设计

企业仓库管理系统数据库设计

企业仓库管理系统数据库设计1.数据库目标-存储和管理企业仓库的所有物品信息,如名称、价格、数量等。

-记录仓库中物品的流动情况,包括入库、出库、移库等操作。

-跟踪物品的库存情况,包括当前库存数量、最大/最小库存量等。

-提供查询和报告功能,以便用户可以根据需求获取仓库的相关信息。

2.数据库结构-物品:存储物品的基本信息,如名称、价格、数量等。

-仓库:存储仓库的基本信息,如名称、地址等。

-入库单:记录物品的入库操作,包括物品、数量、时间等。

-出库单:记录物品的出库操作,包括物品、数量、时间等。

-移库单:记录物品的移库操作,包括原仓库、目标仓库、物品、数量、时间等。

3.数据库表设计根据上述数据库结构,我们可以设计以下几个表来存储相关信息:- 物品表(item):包含字段id、名称、价格、数量等。

- 仓库表(warehouse):包含字段id、名称、地址等。

- 入库单表(inbound_order):包含字段id、物品id、数量、时间等。

- 出库单表(outbound_order):包含字段id、物品id、数量、时间等。

- 移库单表(move_order):包含字段id、原仓库id、目标仓库id、物品id、数量、时间等。

4.数据库关系设计根据上述表的设计,我们可以建立以下关系:-物品表与仓库表之间是多对多关系,一个仓库可以存放多个物品,一个物品也可以存放在多个仓库中。

可以使用一个关联表来表示这种关系。

- 入库单表与物品表之间是多对一关系,一个入库单可以有多个物品,一个物品只能属于一个入库单。

可以使用物品id作为外键来表示这种关系。

- 出库单表与物品表之间是多对一关系,一个出库单可以有多个物品,一个物品只能属于一个出库单。

可以使用物品id作为外键来表示这种关系。

-移库单表与仓库表和物品表之间是多对多关系,一个移库单可以有多个物品和多个仓库,一个物品可以属于多个移库单,一个仓库也可以包含多个移库单。

可以使用一个关联表来表示这种关系。

商品仓库管理系统数据库设计

商品仓库管理系统数据库设计
客户可以自己进行注册,也可以由管理员分配。商场中的每个客户都分配有唯一的编号、名字、地址、电话号码,每个用户可以进行信息查询,但不可以进行修改。
(2)供应商的基本信息
每个供应商拥有唯一的编号、名字、地址、供应货物及电号码。
(3)货物的基本信息
每种货物有一个编号,会存放在一个仓库中,货物有唯一的名称,属于一个类型,拥有一定货物存储量,管理员可以对其信息进行修改。
40
供应商地址
货物
Pgoods
char
6
供应商供应货物
电话
Ptel
char
11
供应商电话
照片
Picon
image
16
供应商照片
5.仓库存储数据字典
属性名
存储代码
类型
长度
备注
货物编号
Gno
char
5
仓库编号
Sno
char
5
货物名称
Gname
char
10
类型名称
Tname
char
20
货物存储量
Gnum
int
4
仓库货物存储量
6.货物入库数据字典
属性名
存储代码
类型
长度
备注
货物编号
Gno
char
5
供应商编号
Pno
char
5
货物名称
Gname
char
10
货物类型
Tname
char
20
仓库编号
Sno
real
4
入库总量
Innum
int
4
货物入库总量
收购单价
Inprice

数据库课程设计--仓库管理系统3

数据库课程设计--仓库管理系统3

摘要企业仓库有多个库房,用来分别存放生产需要的各种零件,仓库管理系统对此进行科学管理。

仓库管理系统管理的对象如下:·管理员信息:工号、姓名、性别、年龄、电话、工资等。

·库房信息:编号、地址、面积等。

·零件信息:零件号、零件名、规格、价格、库存数量等。

一个企业有多个库房,每个库房有多名管理员,每名管理员只在一个库房工作;每个库房可以存放多种零件,每种零件只在一个库房保存。

目录1、概述 (2)2、课程设计任务的需求分析 (2)2.1、设计任务 (2)2.2、设计要求 (2)3、概念结构设计 (2)3.1、概念结构设计工具(E-R模型) (2)3.2、仓库管理员子系统 (2)4、逻辑结构设计 (5)4.1、关系数据模式 (5)4.2、视图的设计 (5)5、数据库物理设计与实施 (6)5.1、数据库应用的硬件、软件环境介绍 (6)5.2、物理结构设计 (6)5.3、索引的设计 (6)5.4、建立数据库 (6)5.5、加载测试数据 (8)6、数据操作要求及实现 (10)6.1、数据查询操作 (10)6.2、数据更新操作 (10)7、收获、体会和建议 (10)8、主要参考文献。

(11)1、概述仓库在现实生活中用途十分广泛,各种商城、超市要利用仓库存放物资,药房、医院等要利用仓库存放药品,企业、工厂等要利用仓库存放原材料、生产成品,因此仓库的管理成了一项十分重要的工作。

人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企业的正常动作,造成恶劣的后果。

随着信息技术的发展,办公自动化的普及,如何快速,高效,便捷的管理仓库受到了高度的关注;因此为了解决这个问题我们提供这个系统以满足仓库管理需求,本系统是基于工厂仓库的管理系统。

本系统主要针对商品管理信息,入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。

用户可以通过相应的模块,对仓库里的物品的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的管理仓库,查询各项相关信息,并能进行入库和出库操作等。

仓储管理系统的数据库设计与实现

仓储管理系统的数据库设计与实现

仓储管理系统的数据库设计与实现随着物流业的发展,仓储管理系统变得越来越重要。

有效的数据库设计是一个好的仓储管理系统的基础,这也是确保仓储管理系统可靠性和高效性的关键。

本文旨在探讨仓储管理系统的数据库设计与实现。

一、需求分析在建立仓储管理系统之前,需要进行需求分析,以确定所要求的功能和数据项。

理想情况下,仓储管理系统应具备以下功能:1、库存管理:包括商品的入库、出库、盘点、移位等;2、订单管理:包括订单的创建、查询、修改、删除、结算等;3、报表管理:包括出库、入库、库存等报表的生成和查询;4、安全管理:包括用户认证、权限管理等。

需要注意的是,数据库设计应该透明地反映出这些需求。

二、实体分析实体是一些拥有属性和身份的事物,例如,在仓储管理系统中,可以将以下实体进行分析:1、商品:商品是仓库中最主要的实体,可以考虑定义商品名称、编号、规格、保质期、供应商等属性。

2、仓库:仓库是一个物理场所,包含商品和库房位置等信息。

3、销售订单:一个销售订单包含一个或多个销售详情。

4、销售详情:包含商品数量、单价、金额等信息。

5、入库订单:一个入库订单包含一个或多个入库详情。

6、入库详情:包含商品数量、单价、金额等信息。

7、用户:包括管理员和操作员等角色,包含登录名、密码、权限等信息。

8、权限:定义用户对数据库的访问权限。

三、数据库设计在确定实体后,需要对其进行建模,并将其转换为数据库模式。

通常,介绍数据库设计时会将数据库模式表示为ER图。

在这个例子中,可以通过ER图来促进对仓储管理系统数据库的理解。

如上图所示,最左边的方框代表实体,右侧的方框表示属性。

箭头表示实体之间的关系。

四、表结构设计在确定数据库模式之后,需要将ER图转换为关系表,以便在数据库中实现。

表结构中,可以将实体转换为表,将属性转换为列,将关系转换为外键包含在表中。

如上文所示,商品实体转化为名称、编号等属性和商品表,仓库实体转化为位置、名称等属性和Warehouse表,同理,其他实体也都可以如此转化。

仓库设备管理系统--数据库设计

仓库设备管理系统--数据库设计1. 设备表(Equipment)- 设备ID(EquipmentID) - 主键- 设备名称(Name)- 设备类型(Type)- 设备规格(Specification)- 设备状态(Status):在库、借用中、维修中、报废- 入库时间(InStockDate)- 出库时间(OutStockDate)- 维修记录(RepairRecord)2. 仓库表(Warehouse)- 仓库ID(WarehouseID) - 主键- 仓库名称(Name)- 仓库位置(Location)- 仓库面积(Area)3. 借用记录表(BorrowRecord)- 记录ID(RecordID) - 主键- 设备ID(EquipmentID) - 外键- 借用人(Borrower)- 借用时间(BorrowDate)- 预计归还时间(ReturnDate)- 实际归还时间(ActualReturnDate)4. 维修记录表(RepairRecord)- 记录ID(RecordID) - 主键- 设备ID(EquipmentID) - 外键- 维修人(Repairman)- 维修时间(RepairDate)- 维修内容(RepairContent)5. 报废记录表(ScrapRecord)- 记录ID(RecordID) - 主键- 设备ID(EquipmentID) - 外键- 报废原因(Reason)- 报废时间(ScrapDate)6. 用户表(User)- 用户ID(UserID) - 主键- 用户名称(Name)- 用户手机号(PhoneNumber)- 用户邮箱(Email)通过上述数据库设计,我们可以实现仓库设备管理系统的管理和操作,包括设备的库存管理、借用记录、维修记录和报废记录等功能。

用户可以通过系统进行设备的查询、借用、归还和维修等操作,实现对仓库设备的全面管理。

在仓库设备管理系统中,设备表是其中最核心的一部分。

企业仓库管理系统数据库设计方案

企业仓库管理系统数据库设计方案企业仓库管理系统是一种集成管理、优化流程和提高运作效率的在线管理系统。

这个系统一般用于大型仓库、生产线或制造中心的管理,它可以通过整合人员、资产、设备或其他运输工具来确保所有物品的安全存储。

随着互联网技术和数字化时代的发展,有许多针对企业仓库管理系统的数据库设计方案涌现出来。

1. 系统概述本文中的企业仓库管理系统是一款基于Web的应用程序,由用户在基于浏览器的设备上使用,包括PC、手机和平板电脑等。

该系统主要是针对仓库管理人员、物流操作者和企业管理部门打造的,旨在优化提供物流和库存管理策略的整体流程。

本系统采用MVC(Model-View-Controller)架构,在开发时,遵循了VUE.js(视图层)和Express.js(服务器层)框架,MySQL实现数据存储。

2. 库存管理库存管理是企业仓库管理系统的核心部分。

我们可以从不同的角度来管理仓库中的所有存货,包括基本信息、数量、价格和存储位置等。

生产厂商、经销商和仓库管理员等用户可以方便地查询和更新货物的相关信息,以达到高效管理库存的目的。

库存管理的主要功能包括:(1)创建库存目录:管理和保存库存货物的关键信息,包括存货名称、SKU代码、数量、货物重量、净重、货物位置等。

(2)批量上传、编辑和删除库存记录: 为快速添加和更新许多库存记录提供了方便。

(3)货位管理:提供对货物位置进行管理的功能,如查询货物所处的货架、行和列。

(4)库存报告:可生成以不同方式分组和排序的库存报告,并支持将报告导出为PDF或Excel。

3. 物流管理物流管理是为了解决仓库中物资进出、转储和仓库物品分发等工作的,其主要任务是提供物流管理的完整平台功能,关注物流信息的流程,为企业的仓库物流提供全面的服务和保障。

物流管理的主要功能包括:(1)物流分配: 为用户提供多种物流分配模式,包括直接分配、最优化分配等,以确保物资的正常流动。

(2)物流操作:可以对物资进行入库、出库、转储等操作,并且操作步骤自动更新成最新状态。

仓库管理系统数据库设计

仓库管理系统数据库设计一、表结构设计1. 仓库表(Warehouse)- 仓库ID(WarehouseID):主键,唯一标识一个仓库- 仓库名称(WarehouseName):仓库的名称- 仓库地址(WarehouseAddress):仓库的地址- 建立日期(EstablishDate):仓库的建立日期- 最后修改日期(LastModifiedDate):最后一次修改仓库信息的日期2. 物品表(Item)- 物品ID(ItemID):主键,唯一标识一个物品- 物品名称(ItemName):物品的名称- 物品描述(ItemDescription):物品的描述信息- 物品价格(ItemPrice):物品的价格- 添加日期(AddDate):物品的添加日期- 最后修改日期(LastModifiedDate):最后一次修改物品信息的日期- 仓库ID(WarehouseID):外键,关联到仓库表的仓库ID,表示该物品所属的仓库3. 订单表(Order)- 订单ID(OrderID):主键,唯一标识一个订单- 订单日期(OrderDate):订单的日期- 运输状态(ShippingStatus):订单的运输状态,如未发货、已发货、已签收等- 运输费用(ShippingCost):订单的运输费用- 物品ID(ItemID):外键,关联到物品表的物品ID,表示该订单所包含的物品- 仓库ID(WarehouseID):外键,关联到仓库表的仓库ID,表示该订单所属的仓库二、关系设计1.仓库与物品之间的关系是一对多的关系,一个仓库可以拥有多个物品,但一个物品只能属于一个仓库。

在物品表中添加一个仓库ID的外键关联到仓库表的仓库ID。

2.仓库与订单之间的关系也是一对多的关系,一个仓库可以包含多个订单,但一个订单只能属于一个仓库。

在订单表中添加一个仓库ID的外键关联到仓库表的仓库ID。

3. 订单与物品之间的关系是多对多的关系,一个订单可以包含多个物品,一个物品也可以属于多个订单。

仓库管理系统数据库的设计与实现SQLserver

●实验题目:仓库管理系统数据库的设计与实现描述:设计一个仓库管理系统,实现下列功能:①零件信息登记(包括种类,名称和库存数量等信息);②零件进库登记(包括种类,名称和库存数量等信息);③零件出库登记(包括种类,名称和库存数量等信息);实验代码和实验结果和实验总结:在实验代码中分别应用了相关实验操作的结果,通过上一个结果截图与其随后的结果截图和相关代码对比课已看出相关代码的作用(主要是各个触发器的作用)。

----------------------------------------数据库的创建createdatabase仓库管理系统数据库onprimary(name=仓库管理系统数据库_data,filename=仓库管理系统数据库_Data.MDF' ,size= 50,maxsize= 500,filegrowth = 5)log on(name=仓库管理系统数据库_log,filename=仓库管理系统数据库_Log.LDF' ,size= 10,maxsize= 200,filegrowth = 5)------------------------------------------数据表的创建use仓库管理系统数据库createtable零件信息登记(零件代号 char(10)primarykey ,名称 char(10)notnull,种类 char(10)notnull,价格 numeric(10,2)notnull,库存数量 intdefault 0)createtable零件进库登记(零件代号 char(10)foreignkeyreferences 零件信息登记 (零件代号 ),进货代号 int,进货人工作号 char(10),名称 char(10)notnull,种类 char(10)notnull,价格 numeric(10,2)notnull,进库数量 intnotnull default 0,存放位置 char(10)notnull,进库时间 datetime,primarykey (零件代号 ,进货代号 ))createtable零件出库登记(零件代号 char(10)foreignkeyreferences 零件信息登记 (零件代号 ),出货代号 int,出货人工作号 char(10)notnull,名称 char(10)notnull,种类 char(10)notnull,价格 numeric(10,2)notnull,出库数量 intnotnull default 0,取货单号 char(10)notnull,出库时间 datetime,primarykey (零件代号 ,出货代号 ))------------------------------------------通过存储过程来实现表中数据的输入createprocedurepro_ins1(@nochar(20),@namechar(20),@classchar(20),@snumeric(10,2),@numint)asinsertinto 零件信息登记values(@no,@name,@class,@s,@num)createprocedurepro_ins2(@nochar(20),@jno int ,@wnochar(10),@namechar(20),@classchar(20),@snumeric(10,2),@numi nt,@mchar(20))asdeclare@timedatetimeset@time=getdate()insertinto 零件进库登记values(@no,@jno ,@wno ,@name,@class,@s,@num,@m,@time)createprocedurepro_ins3(@nochar(20),@jno int ,@wnochar(10),@namechar(20),@classchar(20),@snumeric(10,2),@numi nt,@mchar(20))asdeclare@timedatetimeset@time=getdate()insertinto 零件出库登记values(@no,@jno ,@wno ,@name,@class,@s,@num,@m,@time)createprocedurepro_selectasbeginselect*from 零件信息登记select*from 零件进库登记select*from 零件出库登记end------------------------------------------------------------通过第一个存储过程来实现零件的信息登录execpro_ins1'20112001','螺栓 ','金属 ',5.2,50execpro_ins1'20112002','龙头 ','金属 ',9.3,70execpro_ins1'20112003','水杯 ','塑料 ',36.8,80execpro_ins1'20112004','书包 ','布料 ',52,150execpro_ins1'20112005','电视 ','电子 ',4000,50-----------------------------------------------------当零件进库时通过下面的触发器来实现数据的完整性createtriggertri_ 统一零件管理on零件进库登记insteadofinsertasbeginif (exists(select零件代号 from 零件信息登记where零件代号 =(select零件代号 from inserted))) beginprint'在库里已经此零件,并且放置成功'update零件信息登记set库存数量 =库存数量 +(select进库数量 from inserted)where零件代号 =(select零件代号 from inserted)endif (notexists(select零件代号 from 零件信息登记where零件代号 =(select零件代号 from inserted))) beginprint'库里不存在此零件,已经把此零件加入零件信息登记中 'insertinto 零件信息登记select零件代号 ,名称 ,种类 ,价格 ,进库数量from insertedinsertinto 零件进库登记select零件代号 ,进货代号 ,进货人工作号,名称 ,种类 ,价格 ,进库数量 ,存放位置 ,进库时间from insertedendEnd----------------------------------------------------------------对触发器“ tri统一零件管理”的相关验证信息execpro_selectexecpro_ins2'20112002',1120,'c2011a','龙头 ','金属 ',9.3,70,'一排号 ' execpro_ins2'20112009',1122,'c2011b','电池 ','金属 ',8.3,150,'一排号 ' execpro_ins2'20112012',1132,'c2011c','水桶 ','塑料 ',7.9,130,'二排号 ' execpro_ins2'20112013',1134,'a2012d','饮料 ','食品 ',54,200,'二排号 'execpro_select--drop trigger tri_ 统一零件出库-----------------------------------------------------------------------当零件出库时通过下面的触发器来实现数据的完整性createtriggertri_ 统一零件出库on零件出库登记insteadofinsertasif exists(select零件代号 from 零件信息登记 where零件代号 =(select零件代号 from inserted)) beginprint'次零件存在 'if exists(select零件代号 from 零件信息登记 where零件代号 =(select零件代号 from inserted) and库存数量 >=(select出库数量 from inserted))beginbeginprint'零件库存够出售'update零件信息登记set库存数量 =库存数量 -(select出库数量 from inserted)where零件代号 =(select零件代号 from inserted)endinsertinto 零件出库登记select零件代号 ,出货代号 ,出货人工作号,名称 ,种类 ,价格 ,出库数量 ,取货单号 ,出库时间from insertedendelsebeginprint'零件库存数量不够,不能出售!'endendelsebeginprint'仓库里没有此零件,请通知公司 'end--对触发器“ tri统一零件管理”的相关验证信息execpro_ins3'20112002',1120,'f112a','龙头 ','金属 ',9.3,10,'东华理工 ' execpro_ins3'20112004',1143,'f113a','书包 ','布料 ',52,1000,'南昌 ' execpro_ins3'20112045',1220,'f114b','铅笔 ','用具 ',9.3,10,'江西 ' execpro_ins3'20112046',1128,'g112a','锁 ','金属 ',9.3,10,'云南 'execpro_select-------------------------------------------------------------------对“零件进库登记”数据更改是触发对“零件信息登记”的更改--同时防止对“零件进库登记”信息的非法更改createtriggertri_up 零件进库on零件进库登记afterupdateasif exists(select零件代号 from deletedwhere零件代号 =(select零件代号 from inserted) and进货代号 =( select进货代号 from inserted)and进库数量 >( select进库时间 from inserted))update零件信息登记set库存数量 =库存数量 +(select进库数量 from inserted)-( select进库数量 from deleted) elseif exists(select零件代号 from deletedwhere零件代号 =(select零件代号 from inserted) and进货代号 =( select进货代号 from inserted)and进库数量 <=(select进库时间 from inserted))update零件信息登记set库存数量 =库存数量 +(select进库数量 from inserted)-( select进库数量 from deleted) elsebeginprint'修改不正确 'end-----------------------------------------------------------------------对触发器“ tri_up零件进库”的相关验证信息update零件进库登记set进库数量 = 120where零件代号 ='20112002'and进货代号 =1120update零件进库登记set进库数量 = 5000where零件代号 ='20112002'and进货代号 =2187execpro_select----------------------------------------------------------对“零件出库登记”数据更改是触发对“零件信息登记”的更改--同时防止对“零件进库登记”信息的非法更改createtriggertri_up 零件出库on零件出库登记afterupdateasif exists(select零件代号 from deletedwhere零件代号 =(select零件代号 from inserted) and出货代号 =( select出货代号 from inserted)and出库数量 <=(select出库时间 from inserted))update零件信息登记set库存数量 =库存数量 +(select出库数量 from inserted)-( select出库数量 from deleted) elseif exists(select零件代号 from deletedwhere零件代号 =(select零件代号 from inserted) and出货代号 =( select出货代号 from inserted)and出库数量 >( select出货代号 from inserted))update零件信息登记set库存数量 =库存数量 +(select出库数量 from inserted)-( select出库数量 from deleted) elsebeginprint'修改不正确 'end----------------------------------------------------------------------对触发器“ tri_up零件出库”的相关验证信息update零件出库登记set出库数量 = 20where零件代号 ='20112002'and出货代号 = 1120update零件出库登记set出库数量 = 120where零件代号 ='20112004'update零件出库登记set出货代号 =620where零件代号 ='20112004'execpro_select----------------------------------------------------------------------一下代码为创建相关规则、试图、用户并授权,来完成数据库的完整性和安全性---相关的验证信息省略createruleru_零件数量as@num>= 0execsp_bindrule 'ru_零件数量 ','零件信息登记.库存数量 'execsp_bindrule 'ru_零件数量 ','零件进库登记.进库数量 'execsp_bindrule 'ru_零件数量 ','零件出库登记.出库数量 'execpro_ins1'20112011','龙头 ','金属 ',9.3,-10execpro_ins2'20112012','龙头 ','金属 ',9.3,-100,'东华理工 '-e xecpro_ins3'20112013','龙头 ','金属 ',9.3,-100,'东华理工 ' createviewview_ 零件进出库 (零件代号 ,进库数量 ,出库数量 ) asselect零件进库登记 .零件代号 ,进库数量 ,出库数量from 零件进库登记 ,零件出库登记where零件进库登记.零件代号 =零件出库登记.零件代号createviewview_ 零件库存情况asselect零件代号 ,库存数量from 零件信息登记select*from view_ 零件进出库select*from view_ 零件库存情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Material_id ck_amout
Varch ar(6) float
Not null Null
8
问题分析-7
仓库信息表Store:
列名 数据类型 可否为空 说明
Stor_no
Stor_name Manager_no Stor_total Stor_area
9
Varchar( 2)
Varchar( 20) Varchar( 6) Int Float
Rk_amout float
6
问题分析-5
材料出库信息表Material_ck_1:
列名 数据类型 可否为 空 说明
Materialckd_no Varchar(7)
Getpeople ck_date ck_amout
Not
出库单号(主键),自动 产生,可修改
提货人 出库时间(系统自动入) 出库数量
17
阶段检查
针对第二阶段抽查学生的编码结果
老师给出点评或集中演示难点部分
18
第二阶段标准代码演示-1
建库
IF exists(SELECT * FROM sysdatabases WHERE name=„projectDB')
检验数据库是否存在,如果为 GO 真,删除此数据库 CREATE DATABASE projectDB ON
SET NOCOUNT ON --不显示受影响的条数信息 INSERT INTO material(Material_name,Material_xh, Material_manufacture,Product_dw,Material_price) VALUES(„铁皮‟,„A4‟,„杭州钢铁厂‟,„平方米’,‘60‟) INSERT INTO material(Material_name,Material_xh, Material_manufacture,Product_dw,Material_price) VALUES(„铁皮‟,„A5‟,„杭州钢铁厂‟,„平方米’,‘80‟) SELECT * FROM material GO
企业仓库管理系统 数据库设计
问题描述
某企业为实现现代化管理准备开发一套仓库管理系统, 实现如下功能: 1、材料情况登记(每一材料入库前的详细情况登记) 2、材料库存信息登记 3、材料入库信息登记
4、材料出库信息登记
5、仓库信息登记 现要求对“企业仓库管理系统”进行数据库的设计并实 现,数据库保存在D:\project目录下,文件增长率为 20% 。
难点分析-4
插入测试数据、常规业务模拟、创建索引视图部分
子查询: SELECT ....FROM … WHERE Material_name =(SELECT … FROM …) SQL编程: DECLARE @ Material_name char(6) 声明变量
SELECT @ Material_name = Material_name from ..where (Material_no =„XX')
23
第四阶段
第四阶段(60分钟): 利用SQL语句创建索引和视图 要求学生自己动手操作,教师解答学员提出的问 题
24
阶段检查
针对第四阶段抽查学员的编码结果 抽查学生编写的完整代码,要求学生上台讲解, 并演示运行结果 教师给出点评
25
第四阶段标准代码演示-1
创建视图:
.创建视图:查询各表要求字段全为中文字段名。 create VIEW view_material --材料信息表信息表视图(其他表同理) AS select Material_no as 材料, Material_name as 材料名称, Material_xh as 型号规 格, Material_manufacture as 生产厂家, Product_dw as 生产单位, Material_price as 参考价格 from material GO
建表:
USE projectDB GO CREATE TABLE material --材料信息表 ( Material_no INT IDENTITY(1,1), Material_name VARCHAR(20) NOT NULL, Material_xh VARCHAR(6) NOT NULL, Material_manufacture VARCHAR(20) …… )
使用部门
仓库管理员号 审核人号,引用emp_no 是否审核,默认未审核 备注信息
问题分析-6
材料出库信息表Material_ck_2:
列名 数据类型 可否为 空 说明
Materialckd_ Varch no ar(7)
Not null
出库单号(主键一,外键),自 动产生,可修改,但要保证一次 出库单业务中的出库单号是一致 的 材料号(主键二、外键) 出库数量
3
Varchar(8) Money
Not null 单位(米、只、个) Null 参考价格(默认0)
问题分析-2
材料库存信息表Material_kc:
列名 数据类型 可否为空 说明
Material_id
Kc_balance Kc_amout
Varchar(6) Not Null
float float Null Null
CREATE PROCEDURE proc_takematerial @Name char(19)……. AS print '入库正进行,请稍后......' if (…..)
begin
…… end ……… GO
29
第六阶段
第六阶段(30分钟): 利用SQL语句创建转帐事务的存储过程并测试 要求学生自己动手操作,教师解答学员提出的问 题
Not null
仓库号(主键)
NOT Null 仓库名 NOT Null 负责人号,引用自yg表 中的”emp_no” Null 仓位数 Null 面积(平方米)
难点分析-1
设计ER图、建库、建表、加约束、建关系部分
建库语句:
CREATE DATABASE project DB ON (
建表语句:
14
第一阶段
第一阶段(45分钟)
利用PowerDesigner设计E-R图
要求学生自己动手操作,老师解答难点
15
阶段检查
针对第一阶段抽查学生的操作结果 老师给出点评或集中演示难点部分
16
第二阶段
第二阶段(60分钟)
利用SQL语句实现建库、建表、加约束、建关系
要求学生自己动手编写SQL语句,老师解答学生 提出的问题
材料号(主键,外键)
期初余额 现有库存
Kc_pc
Kc_pcyk Kc_pctime Stor_no
float
float Datetime
Null
Null Null
盘库数量
盘库盈亏(=盘库数量-现 有库存) 盘库时间(盘库时系统自 动产生,不能修改) 仓库号(外键) 在途数量,默认为0
Varchar(2) Not null Null
30
阶段检查
针对第六阶段抽查学员的编码结果 抽查学生编写的完整代码,要求学生上台讲解, 并演示运行结果 教师给出点评
31
第六阶段标准代码演示-1
视图: 给变量赋值的两种方法:SELECT或SET CREATE VIEW view_userInfo
AS
…--SQL语句 GO
12
测试视图: SELECT .. FROM view_userInfo …
难点分析-6
存储过程部分1:
创建存储过程:
CREATE PROCEDURE proc_takeproduct @ID char(8), @type char(4) , AS …..—SQL语句 GO
2
问题分析-1
材料信息表material :
列名 数据类型 可否为空 说明
Not null 材料号(主键),自 动产生,可修改 Material_name Varchar(20) Not null 材料名称 Material_no Varchar(6) Material_xh Varchar(6) null 型号规格 生产厂家 Material_manuf Varchar(20) Null acture Product_dw Material_price
Varchar(10) Null Datetime float Varchar(6) Varchar(6) bit Text Null Null Not Null Null Null
user_dept
Cgpeople_no audit_no Has_Audited Ck_memo
7
Varchar(20) Null
20
GO
第三阶段
第三阶段(45分钟):
利用SQL语句实现插入测试数据、常规业务操作
要求学生自己动手操作,教师解答学员提出的问 题
21
阶段检查
针对第三阶段抽查学生的编码结果 抽查学生编写的完整代码,要求学生上台讲解, 并演示运行结果 教师给出点评
22
第三阶段标准代码演示-1
部门A和部门B信息登记:
CREATE TABLE 表名 (
Material_no IDENTITY(1,1),
NAME=ቤተ መጻሕፍቲ ባይዱ…',
FILENAME=…', SIZE=…, FILEGROWTH=… ) LOG ON (…. )
10
Material_name CHAR(8) NOT NULL,
….. )
难点分析-2
设计ER图、建库、建表、加约束、建关系部分
( NAME=„projectDB_data', SIZE=1mb, 创建建库projectDB
相关文档
最新文档