大猫OPC

行政区划字典:省 / 市 / 区县 / 街道

阅读 8 更新于 2026-10-27

先说结论

站群的"站"不是拍脑袋起的名字,而是行政区划字典里的一个节点。字典做对了,建站就是勾选。

字典怎么存

city_regions
  id, parent_id, level(1省/2市/3区县/4街道), name, code
  • 全局共享,不按租户复制(4 万个节点 × N 个租户会爆炸)
  • 平台后台维护,租户只读
  • 街道级数据来自 pcas-code.json,合并导入 41,352 条

建站时怎么用

只选省 → 生成全省城市站;选到市 → 只生成该市;选到区县 → 前缀自动拼成 城市-区县。

好处:

  • 不用手填城市名,避免错别字和重名
  • 子域名前缀可以自动生成
  • 门户的地区统计可以直接聚合

一个冗余字段的必要性

city_sites.province_id 是铺站时回填的省份冗余字段。为什么不在查询时 join?

因为门户要按省聚合"每个省有多少站",1.2 万行 join 4 万行字典,每次都要算。冗余一个字段,一次 group by 就出结果。

代价是:新增站点后必须回填(批量脚本已处理),否则统计会漏。

字典维护的坑

  • 行政区划会改名、合并、撤县设区
  • 改名后 URL 要不要变?变了就要 301
  • 编码(行政区划代码)比名字稳定,尽量用它做主键关联
本页内容对你有帮助吗? 感谢反馈(演示按钮,暂未接入后端)