Oracle数据库设计实例-实时生产效率系统数据库设计
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数据库的管理与维护说明
。。。
Oracle数据库设计实例-实时生产效率系统数据库设计的更多相关文章
- 转: 透过CAT,来看分布式实时监控系统的设计与实现
评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...
- 透过CAT,来看分布式实时监控系统的设计与实现
2011年底,我加入大众点评网,出于很偶然的机会,决定开发CAT,为各个业务线打造分布式实时监控系统,CAT的核心概念源自eBay闭源系统CAL----eBay的几大法宝之一. 在当今互联网时代,业务 ...
- 海量日志实时收集系统架构设计与go语言实现
日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求.运维成本低.稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的.然而这时理想中的日志收集系统,现实往往不是这样的. ...
- 关于SQL Server系统数据库详解
介绍这里我们介绍SQL Sever内部的系统数据库的作用和用户数据库之间联系,关于SQL Sever如何管理用户数据库的原理,对于每个数据库开发人员和DBA都是必须掌握的. SQL Sever系统数据 ...
- SQL Server 系统数据库恢复
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述 SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关 ...
- SQL SERVER 移动系统数据库
移动系统数据库在下列情况下可能很有用: 故障恢复.例如,数据库处于可疑模式下或因硬件故障而关闭. 计划的重定位. 为预定的磁盘维护操作而进行的重定位. 移动 Master 数据库 在“开始”菜 ...
- sql server 备份与恢复系列八 系统数据库备份与恢复分析
一.概述 在前面讲过"sql server 备份与恢复系列"都是集中在用户数据库上.sql server还维护着一组系统数据库,这些系统数据库对于服务器实例的运行至关重要.在每次进 ...
- sqlserver 标准系统数据库
SQL server系统数据库很重要,大部分时候都不应该修改他们.唯一例外的是model数据库和tempdb数据库.model数据库允许部署更改到任何新创建的数据库(如存储过程),而更改tempdb数 ...
- Qt数据库 QSqlTableModel实例操作(转)
本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...
随机推荐
- 【c++】访问控制
1. 类内的访问控制 在基类中,public和private具有普通的含义:用户(即基类的对象)可以访问public成员(包括函数.数据),而不能访问private成员.private只能被基类的成 ...
- Java绘制图片并进行合成
以下代码可以生成六行两列的图片,代码改成了可以接受参数可循环的. package com.xgt.util; import com.sun.image.codec.jpeg.JPEGCodec; im ...
- java 并发(三)---Thread 线程
Thread 的状态 线程共有五种状态.分别是: (1)新建 (2)就绪 (3)运行 (4)阻塞 (5)死亡 ,下面列列举的状态需要结合状态示意图更好理解. 新建状态(New): 新创建了一个线程对 ...
- 如何删除eclipse中已经保存的svn密码
一.打开eclipse--->点击Window--->点击Perference,打开eclipse配置,输入svn,然后点击svn,找到下方svn接口,查看下svn是什么类型的接口,如果是 ...
- Java温故而知新(2)多线程详解
多线程指的是在单个程序中可以同时运行多个同的线程执行不同的任务.线程是程序内的顺序控制流,只能使用分配给序的资源和环境. 一.线程与进程的区别 多个进程的内部数据和状态都是完全独立的,而多线程 ...
- java.lang.UnsupportedClassVersionError: action/Login : Unsupported major.minor version 52.0 (unable to load class action.Login)异常
用myeclipse新建一个web项目,用了struts2框架,tomcat启动的时候报了这个错误. 我的问题原因是tomcat7的运行环境不知道为什么设置成了myeclipse1.7的jre,我给它 ...
- flask_sqlalchemy filter 和filter_by的区别
1. filter需要通过类名.属性名的方式,类名.属性名==值.filter_by 直接使用属性名=值,可以看源码filter_by需要传一个 **kwargs 2. filter支持> &l ...
- 《深入理解Java内存模型》读书总结(转-总结很好)
概要 文章是<深入理解Java内容模型>读书笔记,该书总共包括了3部分的知识. 第1部分,基本概念 包括“并发.同步.主内存.本地内存.重排序.内存屏障.happens before规则. ...
- PHP 八种基本的数据类型
四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: array (数组) object (对 ...
- Vue中的静态资源管理(src下的assets和static文件夹的区别)
### 你可能注意到了我们的静态资源共有两个目录src/assets和static/,你们它们之间有怎样的区别呢? 资源打包 为了回答这个问题,我们需要了解webpack是如何处理静态资源的. 在所有 ...


物理设计