使用SQL Server数据库和.NET框架存储和检索邮政地址的最佳方法是什么?
时间:2020-03-05 18:55:21 来源:igfitidea点击:
我正在寻找一种将在数据库中存储和访问全局地址的通用模式。可以使用组件或者其他技术。必须遵循以下条件:
- 地址的每一行都保存在每个国家/地区
- 邮递区号在储存前先经过正则表达式测试
- 原始国家/地区保存在其自己的字段中。显示数据时,地址格式以该国家/地区的样式显示
- 当使用表格输入数据时,标签字段尽可能具有描述性,因此标签必须相对于原产国是动态的。
- 地址占用最小的空间
解决方案
回答
如何将地址存储为文本(允许换行)。邮政编码必须使用正则表达式(根据国家/地区下拉列表进行选择)从地址中提取,并应存储在单独的列中。
这不能满足"尽可能描述性"的要求,但总的来说,对数据格式实施更多限制将导致一定百分比的有效地址被拒绝。它也将比单个varchar列占用更多空间。因此,我们列出的要求之间总会有折衷。
回答
我将把我们引到我的博客文章"地址存储中的一课",以说明为什么我们不应该以当前接受的格式存储地址,并且应该对其进行规范化!不要懒于地址存储,它只会让我们日后头疼!
另外,还有另一个StackOverflow问题问这个问题。标题为国际地理地址应如何存储在关系数据库中。