应该要求地址的哪些部分?

3 sql street-address

假设我将地址存储在数据库表中,在这个相当常见的细分中:

address_street_line_1,
address_street_line_2,
address_city,
address_state,
address_zip,
address_country_id
Run Code Online (Sandbox Code Playgroud)

(注意:我已经阅读了有关进一步拆分,街道类型,门牌号等的问题,对于这个应用程序,我认为这会使事情变得更加复杂.)

为了与国际用户一起使用,不应该要求哪些字段?

我在想这个:

address_street_line_1 REQUIRED
address_city REQUIRED
address_country_id REQUIRED
Run Code Online (Sandbox Code Playgroud)

我应该要求州或邮政吗?

谢谢!泽维尔

cle*_*tus 6

您可能只需要一个字段:country.

但你应该做的是让逻辑依赖于国家.请查看国家地址格式以获取完整列表.这不仅仅是必需的字段.这也是关于正确的格式.美国地址可能是:

8031 Main Street
Springfield OH 12345
USA

而在瑞士:

Bodenstr.173
8043苏黎世
瑞士

注意:瑞士的街道号码和邮政编码按"反向"顺序排列(与英语国家使用的相比).

此外,您的数据类型必须足够广泛,以涵盖其他国家/地区使用的数据.邮编/邮政编码绝对应该是数字类型.例如,"EC2R 8AH"是有效的英国邮政编码.

这可以追溯到这个原则:如果你不对它进行算术运算,它就不是数字类型.这是文字.

另外,尽量不要将邮政编码称为最终用户.那是美国唯一的一个词.几乎所有其他地方都称其为邮政编码,邮政编码或邮政编码.另请注意,英国邮政编码是字母数字,包括空格.

  • +1表示"如果您不对其执行算术,则它不是数字类型". (4认同)