设计景区表:大家都知道景区有分类的概念:湖泊,森林,历史,自然保护区等好几十个(将来有可能还要增加)。现在有两种方案:
1:设计一个表,及景区表,每一个分类做为一个字段。属于哪个分类,相应的字段就为true;
2: 设计三个表,景区表,分类数据表,景区分类表(关联表,主键是景区ID和分类码的联合主键);第1种方案的不好处是字段太多,如果将来添加分类就得添加字段。
第2种方案的不好处是不利于查询,比如查询同时属于好几个分类的景区时SQL不太好写。请大家帮评估一下这两种方案,同时也欢迎推荐其它的方案。
多谢,多谢。

解决方案 »

  1.   

    当然是第二个,不用想了楼主。第一个完全就是拍脑袋想出来的,跟需求一样的,没有经过建模,可扩展性也不好。
    第二个查询不是问题。如果景区分大类,大类里面还有小类,小类里面还有小类,递归下去,最多也就是一颗树而已。查树oracle很牛叉的。如果不是树,那就更好查了,你这个分类表应该没多少数据量的,有3NF的ID关联,一个联查就出来了,sql是最基本的多对多关联查询,很简单的。
      

  2.   

    数据字典的设计上第二种方案必第一种要好。 不过具体还的根据业务需求了。 要实现什么样的目的, 楼主可以在分析下看看..------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716 
      

  3.   

    第二种方法好  1. 如此设计 ,新增分类时不用重新修改程序 ,直接维护,灵活性高
     2. 查询问题 ,使用交叉报表即可 ,如果想直接使用sql查询有点难度 ,呵呵