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数据库设计实例-实时生产效率系统数据库设计的更多相关文章

  1. 转: 透过CAT,来看分布式实时监控系统的设计与实现

    评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...

  2. 透过CAT,来看分布式实时监控系统的设计与实现

    2011年底,我加入大众点评网,出于很偶然的机会,决定开发CAT,为各个业务线打造分布式实时监控系统,CAT的核心概念源自eBay闭源系统CAL----eBay的几大法宝之一. 在当今互联网时代,业务 ...

  3. 海量日志实时收集系统架构设计与go语言实现

    日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求.运维成本低.稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的.然而这时理想中的日志收集系统,现实往往不是这样的. ...

  4. 关于SQL Server系统数据库详解

    介绍这里我们介绍SQL Sever内部的系统数据库的作用和用户数据库之间联系,关于SQL Sever如何管理用户数据库的原理,对于每个数据库开发人员和DBA都是必须掌握的. SQL Sever系统数据 ...

  5. SQL Server 系统数据库恢复

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述 SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关 ...

  6. SQL SERVER 移动系统数据库

    移动系统数据库在下列情况下可能很有用: 故障恢复.例如,数据库处于可疑模式下或因硬件故障而关闭. 计划的重定位. 为预定的磁盘维护操作而进行的重定位. 移动 Master 数据库     在“开始”菜 ...

  7. sql server 备份与恢复系列八 系统数据库备份与恢复分析

    一.概述 在前面讲过"sql server 备份与恢复系列"都是集中在用户数据库上.sql server还维护着一组系统数据库,这些系统数据库对于服务器实例的运行至关重要.在每次进 ...

  8. sqlserver 标准系统数据库

    SQL server系统数据库很重要,大部分时候都不应该修改他们.唯一例外的是model数据库和tempdb数据库.model数据库允许部署更改到任何新创建的数据库(如存储过程),而更改tempdb数 ...

  9. Qt数据库 QSqlTableModel实例操作(转)

    本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...

随机推荐

  1. Python取时间,日期的总结

    import datetime from datetime import timedelta now = datetime.datetime.now() #今天 today = now #昨天 yes ...

  2. sql 获取当天开始时间 结束时间

    2010-06-21 00:00:00.000 SELECT dateadd(ms,0,DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)) 2010-06-21 23: ...

  3. python中range()和len()函数区别

    函数:len() 作用:返回字符串.列表.字典.元组等长度 语法:len(str) 参数: str:要计算的字符串.列表.字典.元组等 返回值:字符串.列表.字典.元组等元素的长度 实例 1.计算字符 ...

  4. nginx文件访问403问题

    配置测试环境nginx时,增加了一个新的用户用来上传资源,所以想着就直接把静态资源放在新用户的home目录.为此,还特地设置了相应目录的所有用户都可以读取. chmod 755 /home/tom/s ...

  5. 阿里云Centos7上安装MySQL教程

    1 基本安装过程 1.查看系统是否安装了mysql软件 # rpm -qa|grep -i mysql 2.将已经安装过的软件卸载掉.注意:这样的卸载是不彻底,不过这里够用了 # yum remove ...

  6. 关于window.console&&console.log(123)的思考

    一.JS的且运算记得最开始看到window.console&&console.log(123),当时知道能起什么作用但是没有深入研究,最近在研究后总算弄明白了.要理解这个,首先得明白三 ...

  7. C 标准库 - string.h之strspn使用

    strspn Returns the length of the initial portion of str1 which consists only of characters that are ...

  8. PHP中判断字符串是否包含某个字符时,建议使用正则表达式preg_match()

    判断字符串中是否包含 某个字符时,在java中时直接使用 indexOf()来判断的 在php中好像也要对应的,strpos(),stripos() 不过每次我用的都很不爽,老是出现各种各样的小问题, ...

  9. [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化

    局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...

  10. Fatal error: Call-time pass-by-reference has been removed in *****.php on line 18

    问题描述:最近刚刚将php升级到5.4.13,但是打开一个页面的时候出现报错:Fatal error: Call-time pass-by-reference has been removed in ...