《企业仓库管理系统数据库设计.ppt》由会员分享,可在线阅读,更多相关《企业仓库管理系统数据库设计.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、企业仓库管理系统数据库设计 问题描述问题描述某企业为实现现代化管理准备开发一套仓库管理系统,实现如下功能:1、材料情况登记(每一材料入库前的详细情况登记)2、材料库存信息登记3、材料入库信息登记4、材料出库信息登记5、仓库信息登记 现要求对“企业仓库管理系统”进行数据库的设计并实现,数据库保存在D:project目录下,文件增长率为20%。2问题分析-1材料信息表材料信息表material:列名列名列名列名数据类型数据类型数据类型数据类型可否为空可否为空可否为空可否为空说明说明说明说明Material_noVarchar(6)Not null 材料号(主键),自动产生,可修改Material_
2、nameVarchar(20)Not null 材料名称Material_xhVarchar(6)null型号规格Material_manufactureVarchar(20)Null生产厂家Product_dwVarchar(8)Not null 单位(米、只、个)Material_priceMoneyNull参考价格(默认0)3问题分析-2材料库存信息表材料库存信息表Material_kc:列名列名列名列名数据数据数据数据类类类类型型型型可否可否可否可否为为为为空空空空说说说说明明明明Material_idVarchar(6)Not Null材料号(主键,外键)Kc_balancefloa
3、tNull期初余额Kc_amoutfloatNull现有库存Kc_pcfloatNull盘库数量Kc_pcykfloatNull盘库盈亏(=盘库数量-现有库存)Kc_pctimeDatetimeNull盘库时间(盘库时系统自动产生,不能修改)Stor_noVarchar(2)Not null仓库号(外键)Amout_onload floatNull在途数量,默认为04问题分析-3材料入库信息表材料入库信息表Material_rk_1:列名列名列名列名数据类型数据类型数据类型数据类型可否可否可否可否为空为空为空为空说明说明说明说明Cgdd_noVarchar(7)Not采购订单号(外键),自动产
4、生入库单号Materialrkd_noVarchar(7)Not 入库单号(主键)可修改SpeopleVarchar(10)Null 送货人Rk_indateDatetimeNull 入库日期(自动产生可修改)Stor_noVarchar(2)Not 仓库号Audit_noVarchar(6)Null 审核人号Has_Auditedbitnull审核否,默认为未审核Rk_demoTextnull备注信息Make_manVarchar(6)Not制单人5问题分析-4材料入库信息表材料入库信息表Material_rk_2:列名列名列名列名数据类型数据类型数据类型数据类型可否可否可否可否为空为空为空
5、为空说明说明说明说明Materialrkd_noVarchar(7)Not null入库单号(主键一,外键),可修改,但要保证一次入库单业务中的入库单号是一致的Material_idVarchar(6)Not null材料号(主键二、外键)Rk_amoutfloatNot Null入库数量6问题分析-5材料出库信息表材料出库信息表Material_ck_1:列名列名列名列名数据类型数据类型数据类型数据类型可否为可否为可否为可否为空空空空说明说明说明说明Materialckd_noVarchar(7)Not出库单号(主键),自动产生,可修改GetpeopleVarchar(10)Null提货人c
6、k_dateDatetimeNull出库时间(系统自动入)ck_amoutfloatNull出库数量user_deptVarchar(20)Null使用部门Cgpeople_noVarchar(6)Not仓库管理员号audit_noVarchar(6)Null审核人号,引用emp_noHas_AuditedbitNull是否审核,默认未审核Ck_memoTextNull备注信息7问题分析-6材料出库信息表材料出库信息表Material_ck_2:列名列名列名列名数据类型数据类型数据类型数据类型可否为可否为可否为可否为空空空空说明说明说明说明Materialckd_noVarchar(7)Not
7、 null出库单号(主键一,外键),自动产生,可修改,但要保证一次出库单业务中的出库单号是一致的Material_idVarchar(6)Not null材料号(主键二、外键)ck_amoutfloatNull出库数量8问题分析-7仓库信息表仓库信息表Store:列名列名列名列名数据类型数据类型数据类型数据类型可否为空可否为空可否为空可否为空说明说明说明说明Stor_noVarchar(2)Not null仓库号(主键)Stor_nameVarchar(20)NOT Null仓库名Manager_noVarchar(6)NOT Null负责人号,引用自yg表中的”emp_no”Stor_tot
8、alIntNull仓位数Stor_areaFloatNull面积(平方米)9难点分析-1q设计ER图、建库、建表、加约束、建关系部分 建库语句:建库语句:CREATE DATABASE project 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 AD
9、D CONSTRAINT PK_ deptID PRIMARY KEY(deptID),CONSTRAINT DF_ Material_price default(“0”)for Material_price .主键约束默认约束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语句G
10、O难点分析-4声明变量q插入测试数据、常规业务模拟、创建索引视图部分 给变量赋值的两种方法:SELECT或SET测试视图:SELECT .FROM view_userInfo 12创建存储过程:创建存储过程:CREATE PROCEDURE 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语句插入测试数据、模拟常规业务操
11、作 q第四阶段(60分钟)利用SQL语句创建索引和视图、创建触发器 q第五阶段(60分钟)利用SQL语句创建存储过程并测试 q第六阶段(30分钟)利用SQL语句创建产品流通事务并测试 q第七阶段(30分钟)利用SQL语句创建系统维护帐号并授权 14第一阶段q第一阶段(45分钟)利用PowerDesigner设计E-R图q要求学生自己动手操作,老师解答难点15阶段检查q针对第一阶段抽查学生的操作结果q老师给出点评或集中演示难点部分16第二阶段q第二阶段(60分钟)利用SQL语句实现建库、建表、加约束、建关系q要求学生自己动手编写SQL语句,老师解答学生提出的问题17阶段检查q针对第二阶段抽查学生
12、的编码结果q老师给出点评或集中演示难点部分18第二阶段标准代码演示-1q建库IF exists(SELECT*FROM sysdatabases WHERE 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 projec
13、tDBGOCREATE TABLE material 材料信息表 (Material_no INT IDENTITY(1,1),Material_name 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
14、部门A和部门B信息登记: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 materialG
15、O23第四阶段q第四阶段(60分钟):利用SQL语句创建索引和视图 q要求学生自己动手操作,教师解答学员提出的问题24阶段检查q针对第四阶段抽查学员的编码结果q抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q教师给出点评25第四阶段标准代码演示-1q创建视图:.创建视图:查询各表要求字段全为中文字段名。create VIEW view_material-材料信息表材料信息表信息表视图(其他表同理)AS select Material_no as 材料,Material_name as 材料名称,Material_xh as 型号规格,Material_manufacture as 生
16、产厂家,Product_dw as 生产单位,Material_price as 参考价格 from materialGO26第五阶段q第五阶段(60分钟):利用SQL语句创建存储过程并测试q要求学生自己动手操作,教师解答学员提出的问题27阶段检查q针对第五阶段抽查学生的编码结果q抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果q教师给出点评28第五阶段标准代码演示-1q产品入库存储过程产品入库存储过程CREATE PROCEDURE proc_takematerial Name char(19).AS print 入库入库正进行,请稍后.if(.)begin endGO29第六阶段q
17、第六阶段(30分钟):利用SQL语句创建转帐事务的存储过程并测试q要求学生自己动手操作,教师解答学员提出的问题30阶段检查q针对第六阶段抽查学员的编码结果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第七阶段(
18、30分钟):利用SQL语句创建系统维护帐号并授权q要求学生自己动手操作,教师解答学员提出的问题33阶段检查q针对第七阶段抽查学员的编码结果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
19、 sp_defaultdb sysAdmin,projectDB -修改登录的默认数据修改登录的默认数据库为库为bankDB end go-2.创建数据库用户创建数据库用户 EXEC sp_grantdbaccess 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
限制150内