对Oracle数据库设计中字段的正确使用方案

我们大家都了解Oracle数据库有很多的优点,但是你如果对其使用不当的话,是不能展现出它的优势,以下就本人在Oracle开发的过程中所积累的相关经验,以下的文章就是对相关内容的描述。

一、 Oracle数据库设计中字段的使用

 

在一些表的设计中,有一些常用的这段,已经基本成为一个规范,在大型系统中,多可以看到这些字段的踪影,当然字段的名字可能有所不同。常用的字段分为以下几类:

1.WHO字段

这类字段多用于记录每行记录的操作变更信息,比如是谁添加的这行记录,谁做过修改等,详细说明如下:

字段名称

类型

 

说明

 

 

 

  1. LAST_UPDATE_DATE  
  2. DATE 

 

 

***修改日期

 

 

 

  1. LAST_UPDATED_BY  
  2. NUMBER(15) 

 

 

***修改人

 

 

 

  1. CREATION_DATE  
  2. DATE 

 

 

创建日期

 

 

 

  1. CREATED_BY  
  2. NUMBER(15) 

 

 

创建人

 

I.创建人

在任何一个系统中,一般都会有一个权限验证和登录的过程,在登录后,会在系统的内存中记录登录人的信息,当此人在对Oracle数据库的某个表进行添加操作的时候,会同时把这个操作人员的ID值写入表中,供后期统计及审计

II.创建时间

与创建人的含义类似,在创建的同时,写入系统的当前时间,这个字段的值一般取自于服务器而不是客户端,比如在oracle中,可以直接使用SYSDATE作为这个字段的值

III.***修改人

一条记录被创建后,同样会有被修改的可能性,这里需要对修改的人进行一个记录,以便于后期审计。

但是这里要注意的是,这里只记录***的修改信息,如果一条记录经过多次的修改,中间的修改将无迹可寻,如果需要记录详细修改信息,需要使用日志功能,已经超出此字段的功效。

IV.***修改日期

与***修改人同时写入记录中,同理,也是记录***一次修改的时间,中间的修改均被***一次覆盖。

2. 状态及有效期字段

在一些新闻类的内容中,经常会涉及到一个时效性,即一条新闻可能只在某一个时间段内是对外可见的,超过这个时间段则将不允许发布,还有就是有些时候如果发现某些内容有问题,需要暂时对外屏蔽的时候,就可以用到状态字段,详细说明如下:

字段名称

类型

 

说明

 

 

STATUS

 

NUMBER

 

状态

 

 

START_DATE

 

DATE

 

有效开始日期

 

 

END_DATE

 

DATE

 

有效结束日期

 

I.状态

这个字段一般用数值型表达,0表示失效,1表示有效,当然在使用的时候,可以把这两个值进行转义,用“有效”和“失效”来显示,不影响存储方式。

失效不等于删除,经过失效的内容,经过管理程序的调整,把状态变成有效后,还可以恢复正常使用。

II.有效开始日期

这个字段如果填有具体的值,只有当时间超过这个时间后,信息才是有效的,在这个日期之前,信息将自动按无效处理,特别需要注意的是,如果这个字段置空,应该按跳过这个条件检查来处理,这样可以实现程序的灵活性。

III.有效结束日期

具体含义同上,只是超过此期,内容将按失效处理。

3.逻辑删除

在Oracle数据库系统中处理的删除的做法一般有两种:物理删除和逻辑删除,所谓物理删除,就是在数据库中直接使用delete等命令,从数据库里把数据真正的删除,这种删除从正常途径将无法恢复数据,虽然可以部分程度减小整体的数据量,但不利于审计跟踪;逻辑删除指的是对数据不做任何删除处理,而是对记录打个标记,也就是在某个字段上赋值,表示此记录已经删除。

逻辑删除的处理逻辑只由应用程序自己使用,因为数据在Oracle数据库中实际还是存在的。

所涉及字段如下:

字段名称

类型

 

说明

 

 

DELETED

 

NUMBER

 

是否删除

 

 

DELETE_DATE

 

DATE

 

删除时间

 

 

DELETED_BY

 

NUMBER

 

删除人

 

I. 删除标志

此字段有两个取值,0表示正常,1表示已经删除。

打上删除标志后,所以的查询语句必须同时在判断条件的地方加上deleted=0的条件,否则会造成重大的失误。

II. 删除时间

与删除标志一起使用,表示删除的时间,可以使用当前服务器的时间,用sysdate来填充即可。

III. 删除人

与***修改人类似,需要记录删除的具体操作人员

删除与标志位不同,采用标志位的方式,虽然前端无法展示数据,但是后台管理人员人一样可以通过管理程序来调整该状态,但是删除标志则不同,确认删除后,对整个应该来讲,这条记录都应该理解为不存在了。

4. 自增字段

所谓自增字段,是指随着使用,它可以自动增加的字段。

这种字段的值一般没有明确的含义,只用于一个唯一标识,这个字段一般也会设置成主键。

如果应用只针对Oracle,而不考虑数据库无关性,那么sequence无非是***的一个选择。对于以前用习惯MSSQL等其它数据库的朋友来说,Oracle这种用法简直是太费劲了,要花很大的功夫才能做好一个自增字段,但是正因为如此,它也带来了其它Oracle数据库不能相比的优点,举例来说。

一个订单系统,即有订单头,又有订单行,一般是先插入订单头,再插入订单行,对于MSSQL等数据库的自增字段,只有插入后才知道具体的ID值是多少,那么写入后,还要返查一下这个字段值再给订单行使用;而对于oracle来说,只要先从sequence里取出一个值来,头和行一起使用即可,最主要是的sequence的效果是非常高的,不需要担心性能问题。

5. 弹性字段

在Oracle数据库表结构设计的时候,***多留出几个备用的字段来,因为随着系统的使用,一般会有增加字段的需求。预留字段的好处是,只要需要的时候启用即可,不需要进行DDL操作,对数据库后期维护的风险很低,并且一般的DDL操作,会造成级联的VIEW/PACKAGE等程序失效,预留了弹性字段,则不会有这个问题。

预留的字段也可以按类型分成三种:字符串型,数值型及日期型,可以每个类型预留10个,或根据需要来决定,可以采用如下的样式:

 

  1. NUMBER_ATTRIBUTE1  
  2. STRING_ATTRIBUTE1  
  3. DATE_ATTRIBUTE1  

 

弹性字段如果不启用,会不会占用过多的存储空间呢,答案是否定的,因为在这种大型Oracle数据库的结构中,只有一个字段真正被用到的时候,才会去占用实际的空间,否则它只是一个“说明”,并不占用实际的空间,所以不会造成空间浪费。

6. 拆分字段

这并不是一个字段的类型,而是指在表设计的时候,可以适当的把一个大表拆成不同的小表来存储,比如用户表,可以包括登录名,密码,姓名,生日,等一系列的字段,在某些情况下,包括的会员属性可能达到上百个之多。

在数据量小的时候,无论怎么样的存储,都不会有性能问题,但是当数据量比较大的时候,就必须考虑性能问题。如果索引比较合理,不管数据量多大,一般查询速度都不会太慢,但是当某些特别情况,不能使用索引的时候,就会产生FTS(所谓的全表扫描),那么扫描一个小表和扫描一个大表所占的时间就完全不一样了,所以建议比较大的表分开存储,把常用的几个字段单独提取出来,这样即便全表扫描,也能比较好的控制效率。

在使用的时候,只要主表和子表都有索引,把它们联合起来查询,和一个真正的大表的效果基本上是一样的,虽然性能肯定比一个真实的大表慢一点,但是和另一方面的性能提升比较起来,是值得的。目前有些大的系统采用这种拆分方式

【编辑推荐】

  1. 用Oracle屏蔽英文来提示信息的正确方法
  2. Oracle细粒度如何进行访问
  3. Oracle数据库的异构服务原理描述
  4. Oracle使用hints的调整机制实操
  5. 在Oracle数据库中使用PL操作COM对象

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/260291.html<

(0)
运维的头像运维
上一篇2025-05-03 02:29
下一篇 2025-05-03 02:30

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注