想要构建高性能的中国行政区划数据库吗?这套完整的中国行政区划数据系统采用PostgreSQL重构,提供从省级到村级的完整五级联动架构,是开发地理信息系统和数据分析平台的理想选择。本文将指导你完成从SQLite到PostgreSQL的完整迁移流程,无需数据库专家经验!
【免费下载链接】Administrative-divisions-of-China中华人民共和国行政区划:省级(省份)、 地级(城市)、 县级(区县)、 乡级(乡镇街道)、 村级(村委会居委会) ,中国省市区镇村二级三级四级五级联动地址数据。项目地址: https://gitcode.com/gh_mirrors/ad/Administrative-divisions-of-China
系统架构与数据特色
中国行政区划数据库整合了全国五级行政单位数据,包含省级行政区、地级市、县级区划、乡镇街道和村级社区。数据源自权威机构发布,确保准确性和时效性。
数据层级概览
- 省级单位:34个行政区域
- 地级市:334个城市级单位
- 县级区划:2851个县级行政区
- 乡镇街道:约4万基层单位
- 村级社区:超过66万村落数据
环境配置与项目初始化
获取项目资源
git clone https://gitcode.com/gh_mirrors/ad/Administrative-divisions-of-China cd Administrative-divisions-of-China安装必要组件
项目基于Node.js环境运行,需安装相关依赖:
npm install数据文件检查
项目提供多格式数据文件,位于dist/目录:
data.sqlite- 完整SQLite数据库- 分层CSV文件:
provinces.csv、cities.csv等 - 分层JSON文件:
provinces.json、cities.json等
PostgreSQL数据库设计
创建数据库实例
CREATE DATABASE china_division; \c china_division;构建五级数据表
-- 省级行政区划表 CREATE TABLE province ( code VARCHAR(10) PRIMARY KEY, name VARCHAR(50) NOT NULL ); -- 地级行政区划表 CREATE TABLE city ( code VARCHAR(10) PRIMARY KEY, name VARCHAR(50) NOT NULL, province_code VARCHAR(10) REFERENCES province(code) ); -- 县级行政区划表 CREATE TABLE area ( code VARCHAR(10) PRIMARY KEY, name VARCHAR(50) NOT NULL, city_code VARCHAR(10) REFERENCES city(code), province_code VARCHAR(10) REFERENCES province(code) ); -- 乡级行政区划表 CREATE TABLE street ( code VARCHAR(15) PRIMARY KEY, name VARCHAR(50) NOT NULL, area_code VARCHAR(10) REFERENCES area(code), city_code VARCHAR(10) REFERENCES city(code), province_code VARCHAR(10) REFERENCES province(code) ); -- 村级行政区划表 CREATE TABLE village ( code VARCHAR(20) PRIMARY KEY, name VARCHAR(50) NOT NULL, street_code VARCHAR(15) REFERENCES street(code), area_code VARCHAR(10) REFERENCES area(code), city_code VARCHAR(10) REFERENCES city(code), province_code VARCHAR(10) REFERENCES province(code) );数据迁移与导入操作
生成标准化数据文件
运行导出脚本创建CSV格式数据:
./export_csv.sh生成文件包括:
dist/provinces.csv- 省级数据dist/cities.csv- 地级数据dist/areas.csv- 县级数据dist/streets.csv- 乡级数据dist/villages.csv- 村级数据
PostgreSQL数据导入
使用COPY命令批量导入数据:
-- 导入省级数据 \copy province FROM 'dist/provinces.csv' WITH CSV HEADER; -- 导入地级数据 \copy city FROM 'dist/cities.csv' WITH CSV HEADER; -- 导入县级数据 \copy area FROM 'dist/areas.csv' WITH CSV HEADER; -- 导入乡级数据 \copy street FROM 'dist/streets.csv' WITH CSV HEADER; -- 导入村级数据 \copy village FROM 'dist/villages.csv' WITH CSV HEADER;数据验证与完整性测试
检查导入结果
执行统计查询验证数据完整性:
SELECT 'province' as level, COUNT(*) as count FROM province UNION ALL SELECT 'city', COUNT(*) FROM city UNION ALL SELECT 'area', COUNT(*) FROM area UNION ALL SELECT 'street', COUNT(*) FROM street UNION ALL SELECT 'village', COUNT(*) FROM village;预期数据规模:
- 省级:34条记录
- 地级:334条记录
- 县级:2851条记录
- 乡级:约4万条记录
- 村级:约66万条记录
应用场景与查询实践
地址联动选择实现
-- 查询省份下的城市列表 SELECT * FROM city WHERE province_code = '13'; -- 查询城市下的区县信息 SELECT * FROM area WHERE city_code = '1301'; -- 查询区县下的乡镇数据 SELECT * FROM street WHERE area_code = '130111'; -- 查询乡镇下的村庄详情 SELECT * FROM village WHERE street_code = '130111200';数据分析与统计查询
-- 统计各省城市数量 SELECT p.name, COUNT(c.code) as city_count FROM province p LEFT JOIN city c ON p.code = c.province_code GROUP BY p.code, p.name; -- 搜索特定行政区划 SELECT * FROM province WHERE name ILIKE '%北京%';性能优化与维护策略
索引优化配置
-- 创建查询优化索引 CREATE INDEX idx_city_province ON city(province_code); CREATE INDEX idx_area_city ON area(city_code); CREATE INDEX idx_street_area ON street(area_code); CREATE INDEX idx_village_street ON village(street_code);系统维护建议
- 定期备份:配置PostgreSQL自动备份
- 编码统一:确保数据库使用UTF-8字符集
- 关系验证:定期检查外键约束完整性
成果总结与后续规划
通过本指南,你已成功将中国行政区划数据库迁移至PostgreSQL。这套五级数据架构为项目提供强大支撑:
- 完整行政区划数据覆盖
- 标准化数据库设计
- 高效查询性能表现
- 易于维护的关系结构
现在你可以基于这套PostgreSQL数据库开发各类应用,包括地址选择组件、地理信息系统、数据分析平台等。这套权威数据将为项目提供准确、全面的中国行政区划信息基础!
【免费下载链接】Administrative-divisions-of-China中华人民共和国行政区划:省级(省份)、 地级(城市)、 县级(区县)、 乡级(乡镇街道)、 村级(村委会居委会) ,中国省市区镇村二级三级四级五级联动地址数据。项目地址: https://gitcode.com/gh_mirrors/ad/Administrative-divisions-of-China
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考