《企业仓库管理系统.pptx》由会员分享,可在线阅读,更多相关《企业仓库管理系统.pptx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、企业仓库管理系统数据库设计 问题描述某企业为实现现代化管理准备开发一套仓库管理系统,实现如下功能:1、材料情况登记(每一材料入库前的详细情况登记)2、材料库存信息登记3、材料入库信息登记4、材料出库信息登记5、仓库信息登记 现要求对“企业仓库管理系统”进行数据库的设计并实现,数据库保存在D:project 目录下,文件增长率为20%。2问题分析-1材料信息表material:列名 列名 数据类型 数据类型 可否为空 可否为空 说明 说明Material_no Varchar(6)Not null材料号(主键),自动产生,可修改Material_name Varchar(20)Not null材
2、料名称Material_xh Varchar(6)null型号规格Material_manufactureVarchar(20)Null生产厂家Product_dw Varchar(8)Not null单位(米、只、个)Material_price Money Null 参考价格(默认0)3问题分析-2材料库存信息表Material_kc:列名 列名 数据 数据 类 类 型 型 可否 可否 为 为 空 空 说 说 明 明Material_id Varchar(6)Not Null 材料号(主键,外键)Kc_balance float Null 期初余额Kc_amout float Null 现
3、有库存Kc_pc float Null 盘库数量Kc_pcyk float Null 盘库盈亏(=盘库数量-现有库存)Kc_pctime Datetime Null 盘库时间(盘库时系统自动产生,不能修改)Stor_no Varchar(2)Not null 仓库号(外键)Amout_onload float Null 在途数量,默认为04问题分析-3材料入库信息表Material_rk_1:列名 列名 数据类型 数据类型 可否 可否为空 为空说明 说明Cgdd_no Varchar(7)Not采购订单号(外键),自动产生入库单号Materialrkd_no Varchar(7)Not 入库单
4、号(主键)可修改Speople Varchar(10)Null送货人Rk_indate Datetime Null入库日期(自动产生可修改)Stor_no Varchar(2)Not 仓库号Audit_no Varchar(6)Null审核人号Has_Audited bit null审核否,默认为未审核Rk_demo Text null备注信息Make_man Varchar(6)Not制单人5问题分析-4材料入库信息表Material_rk_2:列名 列名 数据类型 数据类型 可否 可否为空 为空说明 说明Materialrkd_noVarchar(7)Not null入库单号(主键一,外键
5、),可修改,但要保证一次入库单业务中的入库单号是一致的Material_idVarchar(6)Not null材料号(主键二、外键)Rk_amout float Not Null入库数量6问题分析-5材料出库信息表Material_ck_1:列名 列名 数据类型 数据类型 可否为 可否为空 空说明 说明Materialckd_no Varchar(7)Not出库单号(主键),自动产生,可修改Getpeople Varchar(10)Null提货人ck_date Datetime Null出库时间(系统自动入)ck_amout float Null出库数量user_dept Varchar(2
6、0)Null使用部门Cgpeople_no Varchar(6)Not仓库管理员号audit_no Varchar(6)Null 审核人号,引用emp_noHas_Audited bit Null是否审核,默认未审核Ck_memo Text Null备注信息7问题分析-6材料出库信息表Material_ck_2:列名 列名 数据类型 数据类型 可否为 可否为空 空说明 说明Materialckd_noVarchar(7)Not null出库单号(主键一,外键),自动产生,可修改,但要保证一次出库单业务中的出库单号是一致的Material_id Varchar(6)Not null材料号(主键二
7、、外键)ck_amout float Null出库数量8问题分析-7仓库信息表Store:列名 列名 数据类型 数据类型 可否为空 可否为空 说明 说明Stor_no Varchar(2)Not null仓库号(主键)Stor_name Varchar(20)NOT Null仓库名Manager_no Varchar(6)NOT Null 负责人号,引用自yg 表中的”emp_no”Stor_total Int Null仓位数Stor_area Float Null面积(平方米)9难点分析-1q 设计ER 图、建库、建表、加约束、建关系部分 建库语句:CREATE DATABASE proje
8、ct DB ON(NAME=,FILENAME=,SIZE=,FILEGROWTH=)LOG ON(.)建表语句:CREATE TABLE 表名(Material_no IDENTITY(1,1),Material_name CHAR(8)NOT NULL,.)10难点分析-2q 设计ER 图、建库、建表、加约束、建关系部分 建约束语句:ALTER TABLE material ADD CONSTRAINT PK_ deptID PRIMARY KEY(deptID),CONSTRAINT DF_ Material_price default(“0”)for Material_price.主键
9、约束默认约束11子查询:SELECT.FROM WHERE Material_name=(SELECT FROM)SQL 编程:DECLARE Material_name char(6)SELECT Material_name=Material_name from.where(Material_no=XX)视图:CREATE VIEW view_userInfo AS-SQL 语句GO难点分析-4声明变量q 插入测试数据、常规业务模拟、创建索引视图部分 给变量赋值的两种方法:SELECT 或SET测试视图:SELECT.FROM view_userInfo 12创建存储过程:CREATE PR
10、OCEDURE proc_takeproduct ID char(8),type char(4),AS.SQL 语句GO难点分析-6q 存储过程部分1:存储过程的参数13阶段划分q 第一阶段(45 分钟)利用PowerDesigner 设计E-R 图q 第二阶段(60 分钟)利用SQL 语句实现建库、建表、加约束、建关系q 第三阶段(45 分钟)利用SQL 语句插入测试数据、模拟常规业务操作 q 第四阶段(60 分钟)利用SQL 语句创建索引和视图、创建触发器 q 第五阶段(60 分钟)利用SQL 语句创建存储过程并测试 q 第六阶段(30 分钟)利用SQL 语句创建产品流通事务并测试 q 第
11、七阶段(30 分钟)利用SQL 语句创建系统维护帐号并授权 14第一阶段q 第一阶段(45 分钟)利用PowerDesigner 设计E-R 图q 要求学生自己动手操作,老师解答难点15阶段检查q 针对第一阶段抽查学生的操作结果q 老师给出点评或集中演示难点部分16第二阶段q 第二阶段(60 分钟)利用SQL 语句实现建库、建表、加约束、建关系q 要求学生自己动手编写SQL 语句,老师解答学生提出的问题17阶段检查q 针对第二阶段抽查学生的编码结果q 老师给出点评或集中演示难点部分18第二阶段标准代码演示-1q 建库IF exists(SELECT*FROM sysdatabases WHER
12、E name=projectDB)DROP DATABASE projectDBGOCREATE DATABASE projectDB ON(NAME=projectDB_data,FILENAME=d:projectprojectDB_data.mdf,SIZE=1mb,FILEGROWTH=15%)LOG ON(.检验数据库是否存在,如果为真,删除此数据库 创建建库projectDB19第二阶段标准代码演示-2q 建表:USE projectDBGOCREATE TABLE material 材料信息表(Material_no INT IDENTITY(1,1),Material_name
13、 VARCHAR(20)NOT NULL,Material_xh VARCHAR(6)NOT NULL,Material_manufacture VARCHAR(20)GO20第三阶段q 第三阶段(45 分钟):利用SQL 语句实现插入测试数据、常规业务操作 q 要求学生自己动手操作,教师解答学员提出的问题21阶段检查q 针对第三阶段抽查学生的编码结果q 抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q 教师给出点评22第三阶段标准代码演示-1q 部门A 和部门B 信息登记:SET NOCOUNT ON-不显示受影响的条数信息INSERT INTO material(Material
14、_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 materialGO23第四阶段q 第四阶段(60 分钟):利用SQL 语句创建索引和视图 q 要求学生自己动手操作,教师解答学员提出的问题24阶段检查q
15、 针对第四阶段抽查学员的编码结果q 抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q 教师给出点评25第四阶段标准代码演示-1q 创建视图:.创建视图:查询各表要求字段全为中文字段名。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 materialGO26第五
16、阶段q 第五阶段(60 分钟):利用SQL 语句创建存储过程并测试q 要求学生自己动手操作,教师解答学员提出的问题27阶段检查q 针对第五阶段抽查学生的编码结果q 抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q 教师给出点评28第五阶段标准代码演示-1q 产品入库存储过程CREATE PROCEDURE proc_takematerial Name char(19).AS print 入库正进行,请稍后.if(.)begin endGO29第六阶段q 第六阶段(30 分钟):利用SQL 语句创建转帐事务的存储过程并测试q 要求学生自己动手操作,教师解答学员提出的问题30阶段检查q
17、针对第六阶段抽查学员的编码结果q 抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q 教师给出点评31第六阶段标准代码演示-1q 出入库事务的存储过程create procedure proc_material.AS begin tran print 开始,请稍后.if(errors0)begin print 失败!rollback tran end else begin print 成功!commit tran endGO 32第七阶段q 第七阶段(30 分钟):利用SQL 语句创建系统维护帐号并授权q 要求学生自己动手操作,教师解答学员提出的问题33阶段检查q 针对第七阶段抽查学员
18、的编码结果q 抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q 教师给出点评34第七阶段标准代码演示-1q 添加系统维护帐号sysAdmin,并授权-1.添加SQL 登录帐号If not exists(SELECT*FROM master.dbo.syslogins WHERE loginname=sysAdmin)begin EXEC sp_addlogin sysAdmin,1234-添加SQL 登录帐号 EXEC sp_defaultdb sysAdmin,projectDB-修改登录的默认数据库为bankDB end go-2.创建数据库用户 EXEC sp_grantdba
19、ccess sysAdmin,sysAdminDBUser GO-3.-给数据库用户授权-为sysAdminDBUser 分配对象权限(增删改查的权限)GRANT SELECT,insert,update,delete,select ON material TO sysAdminDBUser GRANT SELECT,insert,update,delete,select ON Material_kc TO sysAdminDBUser GRANT SELECT,insert,update,delete,select ON Material_rk_1 TO sysAdminDBUser.GO35总结巩固的知识点:qSQL 语句:建库、建表、加约束、建关系q 常用的约束类型:主键、外键、非空、默认值、检查约束q 高级查询:内部连接、子查询、索引、视图q 触发器:插入触发器的使用q 存储过程:带参数的存储过程、带返回值的存储过程q 事务:显示事务的应用q 安全帐号:创建登录帐号、数据库用户、授权36