在数据库中存储国际地址的“ 最佳 ”方式是什么? 以模式的形式回答,并解释为什么选择标准化(或不标准化)您的方式。 还解释了为什么选择每个字段的类型和长度。

注意:您可以决定您认为必要的字段。

===============>>#1 票数:25 已采纳

简单的自由格式文本。

验证所有世界的邮政编码太难了; 固定的国家名单太政治敏感; 强制性州/地区/其他行政区划是不合适的(我经常被问到我住在哪个县 - 当我不这样做时,因为大伦敦根本不是一个县)。

更重要的是,它根本就没有必要。 您的应用程序极不可能以任何严肃的方式建模地址。 如果您想要邮寄地址,请询问邮寄地址。 大多数人并不是那么愚蠢到不能放入邮寄地址以外的其他东西,如果他们这样做,他们可以亲吻他们新购买的物品。

例外情况是,如果您正在做一些自然受限于一个国家的事情。 在这种情况下,您应该询问,例如,{邮政编码,门牌号}对,这足以识别邮政地址。 我想你可以通过美国的扩展邮政编码实现类似的功能。

===============>>#2 票数:9

在过去,我已经在他们的网站上建立了ups / fedex送货地址表格之后需要成为国际的表格(我想如果他们不知道如何处理国际订单,我们都会被冲洗)。 他们使用的字段可用作设置架构的参考。

===============>>#3 票数:5

通常,您需要了解为什么需要地址。 是运送/邮寄吗? 然后真的只有一个要求,让国家分开。 其他行是自由形式的,由用户填写。 这样做的原因是邮件的常见转发策略:转发任何外国邮件而不查看其他地址行。 因此,详细信息仅由位于国家/地区的邮件分拣机解析。 像接收者一样,他们会熟悉国家的惯例。

(UPS可能将一些欧洲小国聚集在一起,所有的低地国家都可能来自比利时 - 这个想法仍然存在。)

===============>>#4 票数:2

我认为添加国家/城市和地址文本会没问题。 国家和城市应分开报告。 管理员总是要求您提供这些您不期望的报告,我不希望通过大型数据库运行LIKE查询。

===============>>#5 票数:2

不要给Facebook过分的尊重。 但是,在每天发布的许多Web应用程序中,数据库的整体结构似乎被忽略了。 显然,我认为没有一个完美的解决方案可以覆盖所有具有地址结构的潜在变量,而无需付出一些努力。 也就是说,结合自动完成功能,Facebook设法获取位置输入数据并消除大部分冗余条目。 他们通过组织数据库来实现这一点,以便以低成本,低错误的方式实时向客户端提供自动完成信息,从而允许他们或多或少地从现有列表中选择正确的位置。

我认为最好的解决方案是访问包含所需地理范围的第三方数据库,并使用它来初始化您的用户位置信息。 这将允许您避免做创建自己的groudwork。 如果幸运的话,您可以通过允许新用户直接从您的第三方供应商处接收正确的自动填充信息来减轻服务器的负担。 最终,您将能够从用户输入数据中填写您自己的数据库中包含的信息,以填充大多数自动填充功能,以获取城市,国家等位置信息。

===============>>#6 票数:-3

您需要提供有关计划如何使用数据的更多详细信息。 例如,City,State,Country等字段可以是单个表中的文本,也可以是链接到具有外键的单独表的代码。

最简单的是

Address_Line_01(必填,非空白)地址_Line_02地址_Line_03地标城市(必填)Pin(必填)省_District状态(必填)国家/地区(必填)

以上所有都可以是具有适当字段长度的文本/ Unicode。

电话号码(如适用)。

  ask by Ryan Montgomery translate from so

未解决问题?本站智能推荐: