一个旅游网的数据库设计:主要有景区、酒店、餐饮三大模块。它们之间有很多相同的字段,也有不同的字段。
而且分别有一些子分类,如酒店有四星级酒店、五星、宾馆等。
    我的设计是分三层   ShopType        //大类型  存:景区、酒店(以后还可以有其它)
                       ShopSecondType  //小类  存:四星级酒店、五星、宾馆等
                       ShopDetail      //详细信息
可是这时景区或酒店的一些特殊信息就不好存了。
另外一种设计是:   ShopType    //大类型
                   Hotel       //酒店
                   jingqu       //景区
                   canyin       //餐饮
这样虽然特殊信息解决了,可是不得于扩展。如果我添加了一个其它类就要添加一张表。而且在程序里就会经常遇到要判断是哪一种商户的问题。请大家帮我出出主意,有其它设计方法,也请不吝赐教!!!!!

解决方案 »

  1.   

    用第一种, 本该能同居一个表的的信息,你还得join才能找齐, 不好不好,查询和更新都不方便
      

  2.   

    其实你已经给出了两种方案。我觉得只能根据情况作取舍了。分析第一种方案:如果按照你的思路继续的话应该有第四层:  ShopType //大类型 存:景区、酒店(以后还可以有其它)
      ShopSecondType //小类 存:四星级酒店、五星、宾馆等
      ShopMain //基本信息(主要的,共有的信息)
      ShopDetail //其他信息(ShopMainid,propertyName//表示什么信息项,propertyValue//表示该信息项的值)
      

  3.   

    看实体之间的关系 ..SELECT