Oracle数据库表设计时的注意事项   表是Oracle数据库中最基本的对象之一。万丈高楼从平地起,这个基础对象对于数据库来说,非常重要。因为其设计是否合理,直接跟数据库的性能相关。从Oracle数据库菜鸟到数据库专家这个过程中,在表设计与管理上,或多或少,会犯一些错误。笔者今天就谈谈自己在这方面的经验与教训,或许能够给大家一些警示作用。

  经验一:在设计大型数据库时,把允许NULL的列放在表的后面。

  在数据库表设计过程中,有些字段要求必须为非空,如表的关键字,单据编号字段等等。在数据库表创建的时候,往往需要把这些字段设置为非空。如此的话,就可以强制用户输入数据,以增强数据的一致性。

  同时,在一张表中,也会有不少的字段,如员工信息表中,员工爱好、注释等字段,就可能允许为空。利用数据库专业术语来说,这些没有内容的字段就是“NULL”字段。

  在数据库表设计的时候,对于这种类型的空字段要特别的留意。一方面,这个NULL字段,不是说其里面存储的是空格。若利用“’’”这个符号去查询空字段的记录的话,往往查不到我们想要的结果。因为在数据库存储的时候,若字段为NULL,则这个值根本没有存储。另一方面,正因为上面这种特性,所以,在表设计的时候,最好把允许NULL的字段放在表的末尾,当数据库比较大或者空字段比较多的话,则可以大大的减少数据库的存储空间。

  另外,在数据库创建表的时候,是按照列建立的时间来排序的。所以,当某个列建立好之后,除非重新删除再建立,否则无法调整列的顺序。这就要求数据库管理员在创建表之前,就要对列、以及是否为空有一个明确的定义。只有如此,才能够合理安排列的顺序。

  经验二:养成勤于写注释的习惯。

  判断一个人是否是数据库专家,从一个“注释”的小习惯中就可以 看得出来。若一个人在数据库开发的时候,勤与写注释,如在建立表或者字段的时候,能够利用comment命令对表与字段进行注释,则可以从一定程度上判断他是这方面的行家。相反,若其开发的数据库,注释没有多少,则基本可以判断,他是一个刚入门的菜鸟。或者说,其没有参加过大型数据库的设计。

  这主要是因为,在数据库开发过程中,往往不是一个人可以完成的。如在开发一个ERP数据库的时候,可能有些人专门负责开发基础表,而有些人负责维护视图,等等。大家都是分工合作。同时,在前台也有程序员需要调用后台的数据库表与字段。所以,中大型的数据库与应用系统往往是大家协作的结果。

  为此,为了提高表与字段的可读性,一个数据库管理人员开发的表格,大家都可以看的懂,就需要给表与字段设置比较详尽的注释。在Oracle数据库中,为了给其他伙伴提供有意义的帮助信息,就可以利用Comment命令来描述表、字段的作用以及一些引用的注意事项。这个小小的命令,可以大大提高表与字段的可读性,提高数据库与程序开发团队的协作性。

 经验三:选择合适的数据类型与长度。

  虽然数据库系统在处理数据时,某些数据类型是兼容的,或者会对相关的数据类型进行自动的转换。如对于一些日期类型的字段,其也可以赋值给字符类型的字段;整数型的字段跟浮点型的数据类型也是兼容的。但是,数据库设计人员不能因为数据库系统的这个特性,就放宽了对数据类型的把关。因为有时候,如在基础数据导入或者数据成批更新的时候,虽然最后可以成功完成任务。但是,数据库在这个过程中,需要进行数据类型的转换,就额外的增加了数据库的负担。

  另外,在数据库设计的时候,也需要考虑字段的长度。若在建立表的时候,字段设计的太长,则会浪费存储空间。相反,若设计的太短的话,会影响前台系统的使用。所以,数据库管理员对于字段的长度,也要引起足够的重视。

转载于:https://blog.51cto.com/lynn0917/378839

Oracle数据库表设计时的注意事项相关推荐

  1. 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区

    数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...

  2. 待办事项 数据库表设计

    待办事项 数据库表设计 drop table "Backlog" cascade constraints; /*================================== ...

  3. 不定字段数目的数据库表设计和数据结构

    不定字段数目的数据库表设计和数据结构 可能采用四种技术: 动态增加数据库表字段 预留足够的空白字段,运行时作动态影射 用xml格式保存在单字段里 改列为行,用另外一个表存放定制字段 现在我们来分析一下 ...

  4. 万字归纳总结 | 数据库表设计与SQL编写技巧

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 前言 随着移动云平台系统业务不断增长,必然需要对各系统进行 ...

  5. oracle 表字段顺序_如何更改Oracle数据库表中字段顺序

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  6. mysql 字段数量不确定_不定字段数目的数据库表设计和数据结构 | 学步园

    两难的境界:不定字段数目的数据库表设计和数据结构 昨天项目组会议上讨论的关于不定字段数目的数据库表问题并没有结果,今天继续分析之后发现问题可能还更大.当时讨论的结果是可能采用四种技术: 动态增加数据库 ...

  7. MySQL - 数据库表设计 - 范式

    目录 一.数据库设计的重要性 二.范式 - 简介: 1.什么是范式? 第一范式 - 单一列 第二范式 - 中间表 - 一对多 第三范式 - 不产生中间表 - 一对一.多对一 三.数据库表设计的注意要点 ...

  8. Oracle数据库表导出和导入csv文件操作

    Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...

  9. Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看

    Oracle 数据库表空间 第一章:表空间的拓展 ① 查看剩余表空间大小 ② 查看表空间文件路径 ③ 通过新增表空间文件拓展表空间 ④ 查看表空间已分配大小 第一章:表空间的拓展 ① 查看剩余表空间大 ...

最新文章

  1. 技术图文:Numpy 一维数组 VS. Pandas Series
  2. Android抽象布局——include、merge 、ViewStub
  3. c语言递归求塔移动次数,【C语言】Hanoi(汉诺)塔问题,求移动盘子的步骤(递归法)...
  4. Oracle 11g Win10卸载 ,亲测
  5. Java 洛谷 P1424 小鱼的航程(改进版)
  6. Secondary NameNode:它究竟有什么作用?(转自:http://blog.csdn.net/xh16319/article/details/31375197)
  7. 4 系统的 CPU 使用率很高,但为啥却找不到高 CPU的应用?
  8. [Python] L1-021. 重要的话说三遍-PAT团体程序设计天梯赛GPLT
  9. Sampleson Reed106 Mac - Sampleson系列插件中一款出色的电钢琴模拟插件
  10. arm汇编—str,mov等指令
  11. smartphone软件的安装方法
  12. ECharts地图省会,城市,县坐标
  13. 数值优化——牛顿迭代法求解函数零点
  14. 佳能LBP2900打印机无法正常打印.用32位驱动安装正常
  15. 【沃顿商学院学习笔记】商业基础——Financing:05 名义利率和实际利率 APR EAR
  16. 机器视觉与钢铁产业条形码追溯
  17. (JZ1162)2018.07.07【2018提高组】模拟B组 1.【NOI2002】贪吃的九头龙
  18. js 对象的键名 可以是数字么
  19. 网络编程二-LINUX网络IO模型
  20. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第二讲html运行原理及结构

热门文章

  1. Chrome web 开发用到的插件
  2. 词法分析器的设计与实现
  3. Spring 基于Java配置
  4. 有什么类方法或是函数可以查看某个项目的Laravel版本的?
  5. Oracle 10g RAC RMAN备份异机单实例恢复
  6. Outlook2013/2016去掉正文中的换行符
  7. js事件触发器fireEvent和dispatchEvent
  8. 在论坛中出现的各种疑难问题:性能优化
  9. J2EE JVM加载class文件的原理机制
  10. ExecutorService线程池