资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,企业仓库管理系统数据库设计,问题描述,某企业为实现现代化管理准备开发一套仓库管理系统,实现如下功能:,1,、材料情况登记(每一材料入库前的详细情况登记),2,、材料库存信息登记,3,、材料入库信息登记,4,、材料出库信息登记,5,、仓库信息登记,现要求对“企业仓库管理系统”进行数据库的设计并实现,数据库保存在,D:project,目录下,文件增长率为,20%,。,2,问题分析,-1,材料信息表,material,:,列名,数据类型,可否为空,说明,Material_no,Varchar(6),Not null,材料号(主键),自动产生,可修改,Material_name,Varchar(20),Not null,材料名称,Material_xh,Varchar(6),null,型号规格,Material_manufacture,Varchar(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,现有库存,Kc_pc,float,Null,盘库数量,Kc_pcyk,float,Null,盘库盈亏,(=,盘库数量,-,现有库存,),Kc_pctime,Datetime,Null,盘库时间,(,盘库时系统自动产生,不能修改,),Stor_no,Varchar(2),Not null,仓库号,(,外键,),Amout_onload,float,Null,在途数量,默认为,0,4,问题分析,-3,材料入库信息表,Material_rk_1,:,列名,数据类型,可否为空,说明,Cgdd_no,Varchar(7),Not,采购订单号(外键),自动产生入库单号,Materialrkd_no,Varchar(7),Not,入库单号(主键)可修改,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_no,Varchar(7),Not null,入库单号(主键一,外键),可修改,但要保证一次入库单业务中的入库单号是一致的,Material_id,Varchar(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(20),Null,使用部门,Cgpeople_no,Varchar(6),Not,仓库管理员号,audit_no,Varchar(6),Null,审核人号,引用,emp_no,Has_Audited,bit,Null,是否审核,默认未审核,Ck_memo,Text,Null,备注信息,7,问题分析,-6,材料出库信息表,Material_ck_2,:,列名,数据类型,可否为空,说明,Materialckd_no,Varchar(7),Not null,出库单号(主键一,外键),自动产生,可修改,但要保证一次出库单业务中的出库单号是一致的,Material_id,Varchar(6),Not null,材料号(主键二、外键),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,难点分析,-1,设计,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,难点分析,-2,设计,ER,图、建库、建表、加约束、建关系部分,建约束语句:,ALTER TABLE,material,ADD 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,语句,GO,难点分析,-4,声明变量,插入测试数据、常规业务模拟、创建索引视图部分,给变量赋值的两种方法,:,SELECT,或,SET,测试视图:,SELECT .FROM,view_userInfo,12,创建存储过程:,CREATE PROCEDURE,proc_takeproduct,ID char(8),,,type char(4),AS,.SQL,语句,GO,难点分析,-6,存储过程部分,1,:,存储过程的参数,13,阶段划分,第一阶段(,45,分钟),利用,PowerDesigner,设计,E-R,图,第二阶段(,60,分钟,),利用,SQL,语句实现建库、建表、加约束、建关系,第三阶段(,45,分钟),利用,SQL,语句插入测试数据、模拟常规业务操作,第四阶段(,60,分钟),利用,SQL,语句创建索引和视图、创建触发器,第五阶段(,60,分钟),利用,SQL,语句创建存储过程并测试,第六阶段(,30,分钟),利用,SQL,语句创建产品流通事务并测试,第七阶段(,30,分钟),利用,SQL,语句创建系统维护帐号并授权,14,第一阶段,第一阶段(,45,分钟),利用,PowerDesigner,设计,E-R,图,要求学生自己动手操作,老师解答难点,15,阶段检查,针对第一阶段抽查学生的操作结果,老师给出点评或集中演示难点部分,16,第二阶段,第二阶段(,60,分钟),利用,SQL,语句实现建库、建表、加约束、建关系,要求学生自己动手编写,SQL,语句,老师解答学生提出的问题,17,阶段检查,针对第二阶段抽查学生的编码结果,老师给出点评或集中演示难点部分,18,第二阶段标准代码演示,-1,建库,IF,exists(SELECT,*FROM,sysdatabases,WHERE name=,projectDB,),DROP DATABASE,projectDB,GO,CREATE DATABASE,projectDB,ON,(,NAME=,projectDB_data,FILENAME=,d:projectprojectDB_data.mdf,SIZE=1mb,FILEGROWTH=15%,),LOG ON,(,.,检验数据库是否存在,如果为真,删除此数据库,创建建库,projectDB,19,第二阶段标准代码演示,-2,建表:,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),),GO,20,第三阶段,第三阶段(,45,分钟):,利用,SQL,语句实现插入测试数据、常规业务操作,要求学生自己动手操作,教师解答学员提出的问题,21,阶段检查,针对第三阶段抽查学生的编码结果,抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果,教师给出点评,22,第三阶段标准代码演示,-1,部门,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,material,GO,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,26,第五阶段,第五阶段(,60,分钟):,利用,SQL,语句创建存储过程并测试,要求学生自己动手操作,教师解答学员提出的问题,27,阶段检查,针对第五阶段抽查学生的编码结果,抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果,教师给出点评,28,第五阶段标准代码演示,-1,产品入库存储过程,CREATE,PROCEDURE,proc_take,material,Name,char(19,).,AS,print,入库,正进行,请稍后,.,if,(.),begin,end,GO,29,第六阶段,第六阶段(,30,分钟):,利用,SQL,语句创建转帐事务的存储过程并测试,要求学生自己动手操作,教师解答学员提出的问题,30,阶段检查,针对第六阶段抽查学员的编码结果,抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果,教师给出点评,31,第六阶段标准代码演示,-1,出入库事务的存储过程,create procedure,proc_,material,.,AS,begin,tran,print,开始,请稍后,.,.,if(errors0),begin,print,失败,!,rollback,tran,end,else,begin,print,成功,!,commit,tran,end,GO,32,第七阶段,第七阶段(,30,分钟):,利用,SQL,语句创建系统维护帐号并授权,要求学生自己动手操作,教师解答学员提出的问题,33,阶段检查,针对第七阶段抽查学员的编码结果,抽查学生编写的完整代码,要求学生上台讲解,并演示运行结果,教师给出点评,34,第七阶段标准代码演示,-1,添加系统维护帐号,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_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,.,GO,35,总结,巩固的知识点:,SQL,语句:建库、建表、加约束、建关系,常用的约束类型:主键、外键、非空、默认值、检查约束,高级查询:内部连接、子查询、索引、视图,触发器:插入触发器的使用,存储过程:带参数的存储过程、带返回值的存储过程,事务:显示事务的应用,安全帐号:创建登录帐号、数据库用户、授权,36,
展开阅读全文