数据库设计时要遵循的一些原则

本文详细介绍了数据库设计中的关键规范,包括表及字段的命名规则、字段类型的选择原则、主键的选择方法等,并对如何避免使用外键约束和触发器进行了探讨。

1.表及字段的命名规则

(1).可读性原则:使用大小写来格式化的库对象名字以获得良好的可读性。例如:使用custAddress而不是custaddress来提高可读性。

(2).表意性原则:对象的名字应该能够描述它所表示的对象。例如:对于表,表的名称应该能够体现表中存储的数据内容;对于存储过程,存储过程应该能够体现存储过程的功能。

(3).长名原则:尽可能少使用或者不使用缩写,适用于数据库(DATABASE)名之外的任一对象。

2.数据库字段类型选择原则

1.列的数据类型一方面影响数据存储空间的开销,另一方面也会影响数据查询性能。当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或者二进制类型,最后是字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型。

2.以上选择原则主要是从下面两个方面考虑。

(1)在对数据进行比较(查询条件、JOIN条件、排序)操作时:同样的数据,字符处理往往比数字处理慢。

(2)在数据库中,数据处理以页为单位,列的长度越小,利于性能提升。

3.char与varChar如何选择

1.如果列中要存储的数据长度差不多是一致的,则应该考虑用char;否则应该考虑用varChar。

2.如果列中的最大数据长度小于50byte,则一般也考虑用char(如果这个列很少用,则基于节省空间和减少I/O的考虑,还是可以选择用varChar)。

3.一般不宜定义大于50byte的char类型列。

4.decimal与float如何选择

1.decimal用于存储精确数据,而float只能用于存储非精确数据。故精确数据只能选择用decimal类型。

2.由于float的存储空间开销一般比decimal小(精确到7位小数只需要4个字节,而精确到15位小数只需要8字节)故非精确数据优先选择float类型。

5.时间类型如何存储

1.使用int来存储时间字段的优缺点

       (1)优点:字段长度比datetime小。

       (2)缺点:使用不方便,要进行函数转换。

       (3)限制:只能存储到2038-1-19  11:14:07  即:2147483648。

2.需要存储的时间粒度

        年、月、日、小时、分、秒、周

6.如何选择主键

1.区分业务主键与数据库主键

         (1)业务主键用于标识业务数据,进行表与表之间的关联。

         (2)数据库主键为了优化数据存储(Innodb会生成6个字节的隐含主键)。

2.跟踪数据库的类型,考虑主键是否要顺序增长,有些数据库是按主键的顺序逻辑存储的。

3.主键的字段类型所占空间要尽可能的小,对于使用聚集索引方式存储的表,每个索引后都会附加主键信息。

7.避免使用外键约束

1.降低数据导入的效率。

2.增加维护成本。

3.虽然不建议使用外键约束,但是相关联的列上一定要建立索引。

8.避免使用触发器

1.降低数据导入的效率。

2.可能会出现意想不到的数据异常。

3.使业务逻辑变得复杂。

9.关于预留字段

1.无法准确的知道预留字段的类型。

2.无法准确的知道预留字段中所存储的内容。

3.后期维护预留字段所要的成本,同增加一个字段所需要的成本是相同的。

4.严禁使用预留字段。

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值