数据库表的扩展性
在做数据库设计时,扩展性是一个必须考虑的问题。例如有这样的一个需求:一个地区表,存在地区的层次关系是国家-->省州-->城市。一开始只有前面的两层关系,我也没多想,就直接设计成了如下的结构:
RegionID Country State
1 中国 北京
2 中国 江苏
这种设计的扩展性很差,数据也冗余,在加上city的话,就会出现
RegionID Country State City
1 中国 北京 北京
2 中国 江苏 南京
3 中国 江苏 苏州
对于这样的结构,设计时应该通过每条记录间的关系反映层次关系,而不是在一条记录中罗列的反映层次关系。正常的设计应该如下:
RegionID ParentID Region
1 0 中国
2 0 法国
3 1 江苏
4 3 南京
5 3 苏州
这样的设计,表的扩展会好一点,冗余也少很多。
作者:KeepMoving
出处:http://www.cnblogs.com/KeepMovingblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/KeepMovingblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号