【发布时间】:2010-12-27 21:41:15
【问题描述】:
我有一个临时数据库,它将 GEO 位置存储为以下结构:
国家
地区
城市
邮政编码
经度
纬度
我从供应商处获取数据。名称不相关。数据来自 CSV 文件,列是
起始 IP
结束IP
国家
地区
城市
邮政编码
经度
纬度
CSV 文件中的数据往往会发生变化,例如邮政编码、城市名称、地区名称或 IP 范围。
处理数据导入的应用程序部分的工作方式如下: 删除国家、地区、城市、邮政编码等。 并将数据重新填充到数据库中。
我需要一个更好的方法。因为当应用程序运行时,我将丢失数据库中这些条目的键。但是这个导入大约需要 2 分钟,这意味着应用程序将无法使用 GEO Location db。所以我不能真正使用删除和插入。
我需要这样实现,将所有数据加载到内存中,并与我从列表中读取数据时的结构完全匹配。即:来自数据库和 CSV 文件的国家字典、地区字典。并在一个事务中检测更改并更新数据库。
问题是:如何映射它们,以便我可以检测到变化。换句话说,例如:如果国家/地区名称更改:),我需要使用 CSV 文件中更改为国家/地区名称的任何内容进行更新。好的。但是超过 1 个国家/地区名称更改如何?地区、城市、邮政编码的想法相同。
是的,我将此广告存储为树结构。 Country 是根节点,Regions 是一级子节点,Cities 是秒级,Postal code 是樱桃。
有什么想法吗?
对不起。这解释起来有点长。感谢您阅读本文所花费的时间。
【问题讨论】:
标签: c# .net database geolocation