Oracle数据库设计实例-实时生产效率系统数据库设计

Oracle数据库设计实例-实时生产效率系统数据库设计
1    引言
1.1    设计前提
某部门经理要求IT部门设计一个流水线实时生产效率系统,用来统计实时的生产量和效率。流水线有数百条,实时间隔为1min。
1.2    编写目的
本文档是生产效率监控系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名丶字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《数据库设计和开发规范》。本文档的读者对象是需求人员丶系统设计人员丶开发人员丶测试人员。
2    数据库环境说明
数据库实例    数据库系统    数据库部署环境    数据库设计工具    说明
RTES_DB_2017    Oralce    Linux    Excel,word    无
3 数据库的命名规则
固定字符‘RTES_DB_+YEAR’
4 逻辑设计
类图:
 
ER图:
 
用例图:
 

5 物理设计
   主要是设计表结构。一般的,实体对应于表。实体的属性对应于表的字段,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不定时一一对应的。对表结构进行规范化处理(第三范式)。
   (小插曲:三大范式)
    第一范式:主键,列不能重复
    第二范式:不存在部分依赖
    第三范式:不能存在传递依赖,其他非主键只能依赖于主键
    5.1表汇总
表名    功能说明
RSET_PRODUCT_PLAN生产计划表    提供每天的计划产量和计划人力
RSET_PRODUCT_RECORD生产记录表    记录单位时间(MIN)的产品情况
RSET_MANPOWER实时人力表    记录单位时间(MIN)的实力人力
RSET_UNIT_OF_EFFICIENCY实时效率表    统计单位时间内(MIN)的产量与效率
RSET_HOUR_OF_EFFICIENCY小时效率表    统计每小时内的产量与效率
RTES_USER用户表    记录系统用户信息
RTES_ROLE用户角色表    记录对应角色对应的菜单功能
5.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/08/2017
Delivery_date    TIMESTAMP    交付日期 格式16/08/2017

表名:RTES_UNIT_OF_EFFICIENCY实时生产效率表
栏位    数据类型    栏位描述
Eff_id (unique id)    VARCHAR2     效率ID BY MIN (PK)
Product_date    TIMESTAMP    生产日期 格式15/08/2017
Job_no    VARCHAR2    单号
Line_no    VARCHAR2    线号
Model_no    VARCHAR2    产品的编号
Time    TIMESTAMP    实时时间 格式15:30
Actual_manpower(11)    NUMBER    实时人力
Plan_manpower(10)    NUMBER    计划人力
Plan_qty(2) BY MIN    NUMBER    计划产量 BY MIN
Actual_output(3)    NUMBER    产量BY MIN
Efficiency (100%)    NUMBER    效率BY MIN

表名:RTES_HOUR_OF_EFFICIENCY小时生产表
栏位    数据类型    栏位描述
Eff_id    VARCHAR2    效率ID BY HOUR (PK)
Product_date(15/08/2017)    TIMESTAMP    生产日期
Job_no     VARCHAR2    单号
Line_no    VARCHAR2    线号
Model_no    VARCHAR2    产品的编号(介绍)
Time_from(hr)09:45    TIMESTAMP    开始时间
Time_to(hr)10:45    TIMESTAMP    结束时间
Avg_manpower    NUMBER    平均人力 BY HOUR
Plan_manpower(10)    NUMBER    计划人力 BY HOUR
Plan_qty(180)    NUMBER    计划产量 BY HOUR
Output(200)    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    生产日期 (15/08/2017)
Time    TIMESTAMP    时间 格式15:30
Card_no    NUMBER    卡号
Staff_no    NUMBER    工号
Online    VARCHAR2    员工状态(Y/N)

表名:RTES_PRODUCT_RECORD生产记录表
栏位    数据类型    栏位描述
Record_id    NUMBER    记录id (PK)
Product_date    TIMESTAMP    生产日期 (15/08/2017)
Time    TIMESTAMP    时间 格式(sysdate) HH:MI:SS
Line_no    VARCHAR2    线号 格式 MIL001
Model_no    VARCHAR2    产品的编号(介绍)
Job_no     VARCHAR2    单号
Qty    NUMBER    产量 默认为1
Enable    VARCHAR2    是否有效(Y/N) 默认为Y



6 安全性设计
 应用级的用户帐号密码不能与数据库相同,防止用户直接操作数据库。用户只能用帐号登录到应用WEB平台,通过WEB平台访问数据库,而没有其他途径操作数据库。
不同用户对系统数据拥有不同权限,可以在一定范围内保证系统数据的完整性。
6.1 用户帐号密码的加密方法
用户帐号采用MD5进行数据加密后再存入数据库,保证在任何地方都不会出现明文密码。有效的防止密码的窃取。
7优化
由于考虑到实际用户希望看到的数据类型,实时生产效率和小时生产效率,所以用两个表来存相应的数据,虽然小时生产效率可以通过实时生产效率表获得,但是考虑到数据量比较大,可能会影响数据库的整体性能,所以再加一个小时生产效率表。
每一年产生的数据量很大,所以可以分库保存每年的数据以及删除不需要的数据。
8数据库的管理与维护说明
。。。

 

posted @ 2017-08-21 15:18  奶奶灰与爷爷白  阅读(1381)  评论(0编辑  收藏  举报