例如:要统计全国、各省、各市、各镇的人口,上级是中国,下级是各个省,省下面有市,市下面有镇,每个镇,每个镇都有相对人数,哪么我应该怎样去设计,好让我可以更好地让我实时查询SQL 数据库设计

解决方案 »

  1.   

    省 1
    市 2
    县 3
    直辖市 4
    ……id name level pid
    1 山东省 1     0
    2 淄博市 2     1
    3 河北省 1     0
      

  2.   

    这个设计可以偷个懒,省市县等这些如果可以固定的话,表这么设计,多加几个字段。 这里是必须的设计字段  省级 市级 县级 ....有的在添加的时候填上,没有的可以设置为一个默认值,例如 -1 ,统计的时候看以什么来统计,省级按省级字段,市级按市级字段来统计,当然这个只是一个参考。如果要一个通用的,表可以按照2楼的来设计,在统计的时候需要把对应的省级 市级 县级等都查询出来作为一个表来关联你需要统计的表,这个查询可能要用到递归的思想和方式来处理,递归的话SQL2000可以按函数来处理,SQL2005及其之上的版本可以用 with cte 的方式来处理。
      

  3.   

    只能采用多层BOM式,因为有辖区没省,如直辖市,也有是区连镇,也有县辖镇,也有市辖镇,又有市辖县