何时需要非规范化
2004-05-09 10:04
239 查看
数据库中数据应该满足规范化要求,如果引入了非规范化数据必须提供理由。
1、规范化时引入了复合关键字,如果复合关键字在四个列以上应当考虑引入人为关键字,这样会有巨大的性能好处。
2、计算的值要连接多个表时,可添加计算列。更新时要用触发器或其他办法保证数据的一致性。
3、一个表很大时,可按行或列对表进行分割,如将常用的列和不常用的列分到两个不同的表中。
4、数据不再活动时,可加入计算列,以加快查询。
5、查询一个表时常常使用另一个表中的某列,可将此列放入第一个表中,为保证数据的一致性,可用存储过程实现更新。
1、规范化时引入了复合关键字,如果复合关键字在四个列以上应当考虑引入人为关键字,这样会有巨大的性能好处。
2、计算的值要连接多个表时,可添加计算列。更新时要用触发器或其他办法保证数据的一致性。
3、一个表很大时,可按行或列对表进行分割,如将常用的列和不常用的列分到两个不同的表中。
4、数据不再活动时,可加入计算列,以加快查询。
5、查询一个表时常常使用另一个表中的某列,可将此列放入第一个表中,为保证数据的一致性,可用存储过程实现更新。
相关文章推荐
- 什么是预编译?何时需要预编译?
- 线程同步:何时互斥锁不够,还需要条件变量?
- 何时需要重建索引
- 什么是预编译,何时需要预编译? 多个文件链接成一个文件
- 何时需要自定义复制构造函数?
- 何时需要自定义复制构造函数?
- 何时需要对时间序列进行Log Transformation
- 垃圾回收器如何知道何时不再需要堆上的某个对象
- 何时需要做urlEncode,以及为什么要做
- 每日一题(36)—— 什么是预编译 , 何时需要预编译?
- 还有何时需要注释?
- 线程同步:何时互斥锁不够,还需要条件变量?
- 总结-Java何时需要使用多线程
- 通过View.post()获取View的宽高引发的两个问题:1post的Runnable何时被执行,2为何View需要layout两次;以及发现Android的一个小bug
- C#何时需要重写ToString()方法
- 何时需要PIC
- 判断oracle index 何时需要重建
- [转]oracle对数据操作何时需要commit
- ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)
- 什么是预编译?何时需要预编译?