5个须警惕的数据库设计错误

上一篇 / 下一篇  2012-05-21 08:59:04 / 个人分类:数据库

每个人都会犯错误,但作为数据库管理员,我们应该尽量避免失误,从而为公司降低成本,并确保数据质量。下面的五个数据库设计失误必须引起我们的警惕。

51Testing软件测试网4J3@c i&O

x;BX\(J_1Q0  1、选择恰当的数据类型,避免数据库的过度膨胀

#e#v~*l2s h#H&t3u0

hh L+n6d7~3hO,n0  请留意数据类型的选择。例如,如果你很清楚某列的数值范围在0-100,000之间,那么就不必使用BIGINT数据类型,因为INT类型就已经足够了。

F x/V#i(Q%A*W051Testing软件测试网d~(PuvI

  选择前者意味着,你每插入一条数据就比后者浪费了4个字节。这听起来也许微不足道,但随着数据量的增长,问题将会凸显出来。

'BHw"wgZ3ol)?*['yV0

.^y{ zi_H0  2、遵循ISO标准,保证异构数据库系统之间的互通性

'eVYN1Ojy0

9P d5e J0h%D4g0   大型企业的IT基础架构非常复杂,可能需要不同数据库系统之间的数据交换。我们以TIMESTAMP数据类型为例,在Transact-SQL中定义的 TIMESTAMP数据类型与ISO标准有所不同。其它的数据库系统与ISO标准也有所差别。所以,我们要尽可能地遵循ISO标准,以保证异构数据库系统 之间的互通性。

K"T(rR+@SC u051Testing软件测试网{MAc%hk

  3、以恰当的机制实现序列化

)LqdZ8KQ,Dr051Testing软件测试网*H Qr9lz o

  保证在数据库中插入记录的序列化非常 有必要,许多数据库设计者通过各种机制来确保序列化的应用。一些数据库设计者喜欢在数据库设计中引入GUID,但引入GUID并不是一个好的选择,这是因 为GUID默认并非序列化的,使用GUID列作为主键和/或索引甚至会造成性能问题。51Testing软件测试网Vj{3Pqn1Bv|

51Testing软件测试网T{*y#e`U8?o(R

  4、创建索引时要将外键考虑在内51Testing软件测试网*v1N)t%OPxR6U$`4~

A bX z-_+M\'J+^R0  如果你的数据库中已定义外键,那么在建立索引的时候就要多加留神了,要把这种情况纳入数据库设计的整体之中去。51Testing软件测试网 u!Q&Q? pVWt

:X'Bb"Tnfs `%R0  5、不要忽略与业务需求相关的候选键51Testing软件测试网X,t7Cx f Y Qeh Vw R

51Testing软件测试网"}0[&y)d9~"WX

  数据库设计者不应只将注意力放在代理键上,而忘却业务需求。显然,这对数据质量非常不利。如果你没有在与业务相关的候选键上建立任何约束或索引,可能会出现重复值。

a]"_8Y2z\)zR051Testing软件测试网"~U y~,w6J/S[ p

  请远离上面的5个数据库设计失误吧,这会帮助你为公司节省成本,并提高数据质量。

5P3].Y6c+|0

TAG:

 

评分:0

我来说两句

Open Toolbar