行政区划数据数据库的设计(二)

本文继续探讨行政区划数据数据库的设计,深入解析其结构和关键要素,为后续的(三)篇做铺垫。
 
Author 水如烟
 
 
在具体设计数据库之前,我们应该先熟悉“数据对象”的特性。在这里,面对的数据对象就是区划码,它的格式如下:
 
六位数字 名称
如:
340302 东市区
 
它的特性如何?它是国家的权威性的数据,由不得我们人为的臆想,所以必须寻求权威性的也就是权威发布机构的说明。就算里面的数据是错的,对于我们使用方来说,也须忠实的使用“错误”数据。
 
那几个版本的数据我都看了,也比较了更改过名称的数据,一部分是更名,一部分它真是修正了前期版本的名称。
 
更名部分还有一种情形,就是两个字的,只是中间空格数不一样。这种情形我进行了处理。在下载网上数据后,凡名称字串里有空格的,在写入本地数据库前,都去掉。
 

        Private Sub AddRow(ByVal table As DataTable, ByVal line As String)
            line = line.Trim
            If line.Length < 7 Then Exit Sub
 
            Dim tmpCode As String
            Dim tmpName As String
 
            tmpCode = line.Substring(0, 6)
            tmpName = line.Substring(6).Trim
 
            If Not IsNumeric(tmpCode) Then Exit Sub ' 前六位需是数字
 
            ' 去掉名称中间的空格
            table.Rows.Add(New String() {tmpCode, tmpName.Replace(" ", "")})
        End Sub

 
 
六位数字的区划码相关规约有:
 
代码结构:
我还是比较了数据,发现:
首组,代表省;
中组,其中 01-20 51-99 表示省直辖市, 21-50 表示地区(州、盟);
尾组, 01-20 表示市辖区或地辖区, 21-80 表示县(旗), 81-99 表示省直辖县级市。
 
在设计数据库时,我考虑了这种动态定义。如果自己理解不对,可以修改。
 
这篇简单说了设计前的基本的准备工作,确定了设计中应把握的基本原则。
下篇转入技术上的设计。

 下一篇,行政区划数据数据库的设计(三)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值