读书人

中国省市区如何在数据库中存储求好

发布时间: 2012-09-10 22:20:12 作者: rapoo

中国省市区,怎么在数据库中存储,求好的方案!
http://www.stats.gov.cn/tjbz/xzqhdm/t20080215_402462675.htm

以上是中国地区,县及县以上行政区划代码

有 代码和名称
怎么实现各个地区查询 列表功能

[解决办法]
做个2级的,所有下属加个父ID
[解决办法]
建个参数表,存
本节点ID
父节点
行政区划名
节点级别(劳动部 1 各省市 2 级 地级市 3 ,县,市辖区 4).
对应数据如:
(110101110000北京市东城区 4)

[解决办法]

SQL code
--如查内蒙古自治区:select * from tableA where id like '15%';
[解决办法]
使用'父节点'和'子节点'进行存贮。
树型查找时使用connect by ,start with,请参考:

http://topic.csdn.net/t/20030512/23/1774674.html
[解决办法]
参考一下
SQL code
create table  test (p varchar2(20),s varchar2(20));insert into test values('中国','江苏');insert into test values('中国','浙江');insert into test values('江苏','南京');insert into test values('南京','鼓楼区');insert into test values('南京','江宁区');insert into test values('南京','白下区');SQL> select * from test start with  p='中国' connect by prior s=p; P                    S-------------------- --------------------中国                 江苏江苏                 南京南京                 鼓楼区南京                 江宁区南京                 白下区中国                 浙江 6 rows selectedSQL> select * from test start with  p='江苏' connect by prior s=p; P                    S-------------------- --------------------江苏                 南京南京                 鼓楼区南京                 江宁区南京                 白下区
[解决办法]
类似这样的需求,我们数据仓库项目是这么建的,
建立层次结构表,设置四个字段如下:

ID: 省\市\区ID,唯一
PID: 父ID
CC: 层次(数据仓库作为维度节点计算需要用到)
MC: 名称



例如:

IDPIDCCMC

1000 0 0 中国

1001 1000 1 广东省   --省

1011 1001 2 广州市 --市

1211 1011 3 天河区 --区
1212 1011 3 白云区
1213 1011 3 海珠区

1012 1001 2 深圳市 --市

2011 1012 3 蛇口区 --区
2013 1012 3 东山区 
2014 1012 3 高新区

读书人网 >oracle

热点推荐