每个人都会犯错误,但作为数据库管理员,我们应该尽量避免失误,从而为公司降低成本, 并确保数据质量。 下面的五个数据库设计失误必须引起我们的警惕。
1.选择恰当的数据类型,避免数据库的过度膨胀
请留意数据类型的选择。例如,如果你很清楚某列的数值范围在0-100,000之间,那么就不必使用BIGINT数据类型,因为INT类型就已经足够了。
选择前者意味着,你每插入一条数据就比后者浪费了4个字节。这听起来也许微不足道,但随着数据量的增长,问题将会凸显出来。
2.遵循ISO标准,保证异构数据库系统之间的互通性
大型企业的IT基础架构非常复杂,可能需要不同数据库系统之间的数据交换。 我们以TIMESTAMP数据类型为例,在Transact-SQL中定义的TIMESTAMP数据类型与ISO标准有所不同。其它的数据库系统与ISO标准也有所差别。所以,我们要尽可能地遵循ISO标准,以保证异构数据库系统之间的互通性。
3.以恰当的机制实现序列化
保证在数据库中插入记录的序列化非常有必要,许多数据库设计者通过各种机制来确保序列化的应用。 一些数据库设计者喜欢在数据库设计中引入GUID,但引入GUID并不是一个好的选择,这是因为GUID默认并非序列化的,使用GUID列作为主键和/或索引甚至会造成性能问题。
4.创建索引时要将外键考虑在内
如果你的数据库中已定义外键,那么在建立索引的时候就要多加留神了,要把这种情况纳入数据库设计的整体之中去。
5.不要忽略与业务需求相关的候选键
数据库设计者不应只将注意力放在代理键上,而忘却业务需求。显然,这对数据质量非常不利。如果你没有在与业务相关的候选键上建立任何约束或索引,可能会出现重复值。
请远离上面的5个数据库设计失误吧,这会帮助你为公司节省成本,并提高数据质量。(张志平/编译)