昨天和今天设计了一个项目的数据库,结果效果很不好
现将在设计当中遇到的经验和教训总结如下:
1. 没有明确用户的需求,就想当然地开始设计。
注意一定要真正理解数据库的开发要求,明白用户的实际需求,要认真地对每个细节都进行分析,一定要保证自己真正的完全理解了细节。不要想当然,用户写在文档中的需求不一定能完整展现实际需求,需要不断地沟通才行,更何况你连文档上的需求都没有理解清楚,只有在需求完全理解的条件下,才能开始考虑后续的工作,否则一定返工。
2. ER图需要画得更加认真仔细,实体不一定分得越详细越好
对ER图,一定要想清楚每个实体的细节,以及它们之间的关系,可以用最小的原则对实体进行分解,标准化到最小程度,但是如果发现这时实体过小,而且实体过多,必须为了分解添加很多全局变量,最终结果可能得不偿失的时候,可能需要将实体合并。
同时基于第三范式来标准化表的时候,并不是越标准越好
3. 均衡数据冗余和效率的关系
我今天就过于执着于表的主键唯一这一属性,追求数据的非冗余过分,而没有考虑到查找效率的问题,其实如果表分的过细,会导致表间操作过多,很大程度上影响搜索的效率。以后不能死抠ER图和标准化准则,要学会从效率的角度考虑,从实际应用的角度考虑。
4. 建立索引的技巧
感觉在表很细的时候,建立索引的维护成本比较高,如果数据库的表项较少的话,可以考虑从应用出发,参照索引的方式设计一些可能有一定数据冗余,但是效率很高的表
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment