关于世界行政区划数据表设计思路问题,请指教!

liubi 2006-09-29 04:27:33
如何处理世界行政区划,因为做旅游网站需要用到世界区划:

当前只想到了以下分法:

1, 层次分:洲 -> 国家 -> 省(直辖市) -> 市 -> 区(县)

2,
洲: 00 - 99 // 01 表示亚洲 02 表示 非洲...
国家: 00 - 99 // 01 表示中国 02 表示 美国...
省(直辖市) 00 - 99 // 01 .....
市 00 - 99
区(县) 00 - 99

3, 用 10 位表示全部:
亚洲: 0100000000
中国: 0101000000
北京: 0101010000 湖南: 0101020000
北京: 0101010100 长沙: 0101020100
密云县: 0101010101 天心区:0101020101
东城区: 0101010102 宁乡县:0101020102

4, 如果查询中国所有省(直辖市)
取出前4位等于 0101 接着 2位 >0 后面全部为 0

5, 如果查询湖南所有市
取出前6位等于 010102 接着 2位 >0 后面全部为 0


这种思路处理是否可行,有没有更好的处理方法。谢谢各位了。
...全文
171 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubi 2006-09-30
  • 打赏
  • 举报
回复
to wwx840723

能否实际指点,非常感谢!
liubi 2006-09-30
  • 打赏
  • 举报
回复
这是我目前的思路,因为没有找到更好的方法,所以在这里先咨询了。

在给客户查询时,不会给提交“宁乡县”汉字,一般通过选择地区,
即提交查询的值是 0101020100, 0101020102.....

多谢唠叨大哥指点。请多多赐教!非常感谢!

wwx840723 2006-09-30
  • 打赏
  • 举报
回复
有很多不妥的地方
请楼主考虑实际情况~
xuzuning 2006-09-30
  • 打赏
  • 举报
回复
宁乡县:0101020102

当我只知道“宁乡县”时,请示例检索过程
liubi 2006-09-30
  • 打赏
  • 举报
回复
to helloyou0(你好!)

当然是用数据表存放数据。

现在我想了解的是:是用1个表方便,还是5个表方便。以及各表中可能需要哪些关键字段和辅助查询字段等! 谢谢!
helloyou0 2006-09-30
  • 打赏
  • 举报
回复
当然用表比较好.
管理也容易.
连接5个表不是什么大事.这些表都是相对固定的.

其实你用的这个编码,和用5个表是一样的.
01,02 ... 这些就相当于表的键值,
你现在一样需要保存这些到数组吧.

用表的好处是修改容易,增加更改国家,地区,等都容易.
查询也方便.

liubi 2006-09-30
  • 打赏
  • 举报
回复
to zeroleonhart(Strong Point:Algorithm)

5个表的话。检索数据起来会不会不方便。一次要连接5个表吗。你是怎样实现的。


to yizia(椅子)

既然前辈已经在使用了,肯定在做的时候有一些要注意的地方,不妨提醒一下。谢谢。
如:我想添加一个北京的区,如何做才是最快的添加方式。
我想修改一个地区名称,。。。。。。。。。。。

数据表中有哪些关键字段和辅助查询字段等。。。

先谢谢了。
zeroleonhart 2006-09-30
  • 打赏
  • 举报
回复
5个表的话。检索数据起来会不会不方便。一次要连接5个表吗。你是怎样实现的。


------------------------------

每个表内有主键id,父级id以及自身的名称
这样做适合于固定等级的树
如果是不固定等级的,就要采用你的办法。
椅子 2006-09-29
  • 打赏
  • 举报
回复
你的方法可以,我也这么用的,因为这样生成树非常简单,order by一下就出来了。

另外,查父母,查子孙也很方便,用like即可。
zeroleonhart 2006-09-29
  • 打赏
  • 举报
回复
分开单独5个表

------------------------------

是的,注意外键内键就行了
liubi 2006-09-29
  • 打赏
  • 举报
回复
to zeroleonhart(Strong Point:Algorithm)

分表,如何个分法, 分开单独5个表,还是?
zeroleonhart 2006-09-29
  • 打赏
  • 举报
回复
分表
用单独的表来记录洲,国等
liubi 2006-09-29
  • 打赏
  • 举报
回复
国家: 00 - 99
全世界的国家和地区超过200

因为按洲来的话。最多的国家是非洲 不超过 60个。

如 0101000000 中国
0201000000 美国

国家都是 01 但有洲区分,所以不会超过 99
anshenghao 2006-09-29
  • 打赏
  • 举报
回复
建议不要弄的那么复杂 洲就5个 何必要01--99

还有就是 国家的代码,建议使用国家的代码 比如中国86

这样比较容易叫人看明白~~~至于后面的 我想到了 再来说 哈哈~~
iasky 2006-09-29
  • 打赏
  • 举报
回复
国家: 00 - 99

全世界的国家和地区超过200

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧