oracle 表设计

通常数据库表设计理念:

 

  1.遵循基本的三大范式。

  2.数据库只用来存储数据 别把过大的压力丢给数据库 别用过多复杂sql语句来进行运算。

  3.对于字段数多和数据量大的表,根据业务查询需求能拆分尽量拆分(垂直拆分:拆字段分表;水平拆分:分区或分小表)。

分区还是分小表???:

大的分区表优点:
1. 表名对于应用透明,无需额外工作
2. 分区操作提高可维护性及高可用性
3. 如果应用中大量用到分区键作为查询条件之一,那么Local Index会带来性能提升
大的分区表缺点:
如果应用中大量的查询不包含索引分区键,而Local Index又无法满足性能要求,那么必须创建的Global Index将带来恐怖的rebuild体验
结论:
如果可以忍受大的分区表的缺点,那么就去选择分区表吧
如果不可以,那么只能用多个小表,可以通过视图 union all等方法满足应用方面需要查询多个小表数据的需求

  4.设计用户表字段时,关联到权限的时候要有是否可读可写可删除 isread,iswrite,isdelete字段。

  5.数据表名和字段名命名规范,达到一看就懂的地步。各个应用或模块的表最好用前缀区分开。

命名规则:

1、必须以字母开始。
2、长度不能超过30个单字节字符。
3、只能包括A-Z,a-z,0-9,_,$和#。
4、不能在相同用户下建立两个同名的对象,
5、不能使用oracle的保留字和关键字。

  6.字段类型和长度要合理,字段类型尽可能反应正式的数据含义,满足功能时字段长度尽可能短。         

VARCHAR2 (size)可变长度的字符串,必须规定长度

CHAR(size)固定长度的字符串,不规定长度默认值为1

NUMBER(p,s)数字型p是位数总长度, s是小数的长度,可存负数,最长38.不够位时会四舍五入.

DATE日期和时间类型

LOB超长字符,最大可达4G

CLOB超长文本字符串

BLOB超长二进制字符串

BFILE超长二进制字符串,保存在数据库外的文件里是只读的.

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

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

  再者,若在创建字段的时候,不能够确认字段长度的话,则最好采用变长的数据类型。如以字符型数据类型为例,就有CHAR与VARHAR2两种。其中,CHAR字符类型主要用来存储固定长度的字符串,允许的最大长度为2000字节。若实际存储的信息内容不到定义的位数的话,则系统会在这些列值为部添加空格,直到其长度到为止。可见,若采用固定长度字段类型的话,即使数据没有这么多,也会占用这么多的存储空间。所以,这种方式下,存储空间的浪费会比较大。后者主要用来存储可变长度的字符数据。当在VARCHAR2列中插入的数据,如果没有到其最大位数的话,则数据库不会在尾部添加空格。从而可以让空间利用最大化。

 

  7.系统中的数据是不是很重要,如果很重要,在删除的时候就不要真的删除,添加删除标志isdelete物理删除。或添加有效标志isenable 。

  8.重要数据的操作员工、操作时间要有字段进行记录。

  9.默认值和约束(主键、外键、唯一性等)根据需要添加。

       10.适当添加冗余字段。

       11.最好把允许NULL的字段放在表的末尾,当数据库比较大或者空字段比较多的话,则可以大大的减少数据库的存储空间。

       12.为了提高表与字段的可读性,注释要详尽到位。

       13.确定表需要采用的类型(标准表、索引表等)。

  

 

 

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值