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