
Oracle数据库设计实例-实时生产效率系统数据库设计
引言
1.1 设计前提
某部门经理要求IT部门设计一个流水线实时生产效率系统,用来统计实时的生产量和效率。流水线有数百条,实时间隔为1min。
1.2 编写目的
本文档是生产效率监控系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名丶字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《数据库设计和开发规范》。本文档的读者对象是需求人员丶系统设计人员丶开发人员丶测试人员。
数据库环境说明
数据库实例 数据库系统 数据库部署环境 数据库设计工具 说明
RTES_DB_2017 Oralce Linux Excel,word 无
数据库的命名规则
固定字符‘RTES_DB_+YEAR’
逻辑设计
类图:
ER图:
用例图:物理设计
主要是设计表结构。一般的,实体对应于表。实体的属性对应于表的字段,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不定时一一对应的。对表结构进行规范化处理(第三范式)。
(小插曲:三大范式)
第一范式:主键,列不能重复
第二范式:不存在部分依赖
第三范式:不能存在传递依赖,其他非主键只能依赖于主键
.1表汇总
表名 功能说明
RSET_PRODUCT_PLAN生产计划表 提供每天的计划产量和计划人力
RSET_PRODUCT_RECORD生产记录表 记录单位时间(MIN)的产品情况
RSET_MANPOWER实时人力表 记录单位时间(MIN)的实力人力
RSET_UNIT_OF_EFFICIENCY实时效率表 统计单位时间内(MIN)的产量与效率
RSET_HOUR_OF_EFFICIENCY小时效率表 统计每小时内的产量与效率
RTES_USER用户表 记录系统用户信息
RTES_ROLE用户角色表 记录对应角色对应的菜单功能
.2表结构
表名:RTES_PRODUCT_PLAN生产计划表
栏位 数据类型 栏位描述
Plan_id VARCHAR2 计划ID BY排期 (PK)
Job_no VARCHAR2 单号
Line_no VARCHAR2 线号
Model_no VARCHAR2 产品的编号
Qty NUMBER 计划总产量
Product_qty NUMBER 每日计划的产量
Plan_manpower NUMBER 每日计划人力
Work_hour NUMBER 每日工时
Product_date TIMESTAMP 生产日期 格式15//
Delivery_date TIMESTAMP 交付日期 格式16// 表名:RTES_UNIT_OF_EFFICIENCY实时生产效率表
栏位 数据类型 栏位描述
Eff_id (unique id) VARCHAR2 效率ID BY MIN (PK)
Product_date TIMESTAMP 生产日期 格式15//
Job_no VARCHAR2 单号
Line_no VARCHAR2 线号
Model_no VARCHAR2 产品的编号
Time TIMESTAMP 实时时间 格式15:
Actual_manpower() NUMBER 实时人力
Plan_manpower() NUMBER 计划人力
Plan_qty() BY MIN NUMBER 计划产量 BY MIN
Actual_output() NUMBER 产量BY MIN
Efficiency (%) NUMBER 效率BY MIN 表名:RTES_HOUR_OF_EFFICIENCY小时生产表
栏位 数据类型 栏位描述
Eff_id VARCHAR2 效率ID BY HOUR (PK)
Product_date(//) TIMESTAMP 生产日期
Job_no VARCHAR2 单号
Line_no VARCHAR2 线号
Model_no VARCHAR2 产品的编号(介绍)
Time_from(hr): TIMESTAMP 开始时间
Time_to(hr): TIMESTAMP 结束时间
Avg_manpower NUMBER 平均人力 BY HOUR
Plan_manpower() NUMBER 计划人力 BY HOUR
Plan_qty() NUMBER 计划产量 BY HOUR
Output() NUMBER 产量 BY HOUR
Efficiency NUMBER 效率 BY HOUR 表名:RTES_USER用户表
栏位 数据类型 栏位描述
Card_no NUMBER 用户卡号 (PK)
Staff_no NUMBER 工号
User_name VARCHAR2 用户名字
User_pwd VARCHAR2 用户密码
User_role VARCHAR2 角色(线长,主管,经理)
Line_no VARCHAR2 负责的线号(主管及以上为空)
Manage_name VARCHAR2 上一级名字 表名:RTES_ROLE角色表
栏位 数据类型 栏位描述
Role_id NUMBER 角色记录ID (PK)
Role_name VARCHAR2 角色
Menu_name VARCHAR2 菜单权限
(查看计划丶修改排期丶操作报表丶员工管理丶用户管理丶查看实时) 表名:RTES_MANPOWER实时人力表
栏位 数据类型 栏位描述
Record_id NUMBER 记录id (PK)
Line_no VARCHAR2 线号 格式 MIL001
Product_date TIMESTAMP 生产日期 (//)
Time TIMESTAMP 时间 格式15:
Card_no NUMBER 卡号
Staff_no NUMBER 工号
Online VARCHAR2 员工状态(Y/N) 表名:RTES_PRODUCT_RECORD生产记录表
栏位 数据类型 栏位描述
Record_id NUMBER 记录id (PK)
Product_date TIMESTAMP 生产日期 (//)
Time TIMESTAMP 时间 格式(sysdate) HH:MI:SS
Line_no VARCHAR2 线号 格式 MIL001
Model_no VARCHAR2 产品的编号(介绍)
Job_no VARCHAR2 单号
Qty NUMBER 产量 默认为1
Enable VARCHAR2 是否有效(Y/N) 默认为Y 安全性设计
应用级的用户帐号密码不能与数据库相同,防止用户直接操作数据库。用户只能用帐号登录到应用WEB平台,通过WEB平台访问数据库,而没有其他途径操作数据库。
不同用户对系统数据拥有不同权限,可以在一定范围内保证系统数据的完整性。
6.1 用户帐号密码的加密方法
用户帐号采用MD5进行数据加密后再存入数据库,保证在任何地方都不会出现明文密码。有效的防止密码的窃取。
7优化
由于考虑到实际用户希望看到的数据类型,实时生产效率和小时生产效率,所以用两个表来存相应的数据,虽然小时生产效率可以通过实时生产效率表获得,但是考虑到数据量比较大,可能会影响数据库的整体性能,所以再加一个小时生产效率表。
每一年产生的数据量很大,所以可以分库保存每年的数据以及删除不需要的数据。
8数据库的管理与维护说明
。。。