我是SQL和关系数据库的新手,我想像的是一个普遍的问题。
我正在建立一个网站,当每个用户提交帖子时,他们都必须提供邮政编码或城市/州的位置。
处理此问题的最佳做法是什么?我是否只是创建一个邮政编码以及城市和州的表格并对其进行查询,或者是否有现成的解决方案来处理此问题?
如果有作用,我正在使用SQL Server 2005。
我需要能够在给定城市/州的情况下检索邮政编码,或者我需要能够在给定邮政编码的情况下吐出城市状态。
您有几种选择。您可以从某人处购买一个批量的邮政编码库,该库将按州列出邮政编码,城市,县等,或者您可以向某人付费以访问将在更细粒度的级别上执行相同功能的Web服务。
最好的选择是使用zip库选项,因为它的价格比Web服务便宜,并且将提供更好的性能。您如何查询或预处理此库取决于您。您提到了SQL Server,因此您可能需要State,Zipcode和City表,并包括它们之间的相关关系。您还需要针对跨越多个邮政编码的城市或具有多个城市的邮政编码进行准备- 但这些问题都不是不可克服的。
至于处理大量用户输入,您可以考虑寻求地址验证Web服务的帮助,尽管其中大多数都需要完整的收货地址才能进行验证。
编辑:好像有一个SourceForge项目提供免费的邮政编码数据,包括经/纬度数据等。不知道它的正确性或最新性。
编辑2:在SourceForge项目的站点上粗略浏览之后,看起来这是一个无效的项目。如果使用此数据,则需要为数据库中不存在的邮政编码/城市提供一些余地。购买的批量库通常带有某种形式的更新保证或更新定价计划等,并且可能更可靠。