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实例操作是本文所介绍的内 ...
随机推荐
- MCD的正确格式
[[99NN/etWLLP/33qnzb/eMNf5mwlh9hUsT+FYsTIU15REWiQd99vwIyZqDUDIRtvsgCP0BXDlvHJlbDR+NPhyL50wS2ThIiEwD/ ...
- (转)MySQL5.6主从复制技术
原文:http://www.cnblogs.com/ilifeilong/category/1014799.html MySQL5.6复制技术(4)-MySQL主从复制过滤参数 摘要: 复制的过滤主要 ...
- 关于在真实物理机器上用cloudermanger或ambari搭建大数据集群注意事项总结、经验和感悟心得(图文详解)
写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentOS6.5版本)和clo ...
- httpclient文件下载
http://blog.csdn.net/nupt123456789/article/details/42721003
- WPF事件中的sender就是事件源
可以看到wpf中所有的事件都是这个格式: private void btnTest_Click(object sender, RoutedEventArgs e) { Button btn = (B ...
- The “SignFile” task was not given a value for the required parameter “CertificateThumbprint”的一个简单的解决方法
这个只是其中一种解决方法,而且不是万能的 1. 由提示内容可以看出,这个一个 sign(认证)的问题, 在出现这个问题的项目上,鼠标右键,选择properties,然后选择signing. 2. 选择 ...
- Java入门系列-21-多线程
什么是线程 在操作系统中,一个应用程序的执行实例就是进程,进程有独立的内存空间和系统资源,在任务管理器中可以看到进程. 线程是CPU调度和分派的基本单位,也是进程中执行运算的最小单位,可完成一个独立的 ...
- java并发编程(3)避免活跃性危险
活跃性危险 一.死锁 发生:每个人都不愿意放弃自己的锁,确想要别人的锁,这就会导致死锁 1.锁顺序死锁:如果每个线程以固定的顺序获取锁,那么至少在程序中不会出现锁顺序导致的死锁: 因为顺序固定如:所 ...
- 02.ToString()方法详解
ToString()使用方法汇总(C#) C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 ...
- The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter.
The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the assoc ...


物理设计