【问题标题】:Does Anyone Use Address Line 2有人使用地址行 2
【发布时间】:2011-01-07 04:23:14
【问题描述】:

所以它基本上是所有地址形式的标准,我想知道为什么?

地址第 2 行。它在所有表格中都要求提供地址详细信息。对我来说,这似乎从来没有必要。它需要数据库中的另一个字段以及随之而来的所有愚蠢的维护。每次使用地址时,都必须将其连接起来,并且 99% 的时间行 2 是空的。另外 1% 的时间你可以把它放到第 1 行。

与其将其称为第 2 行,不如将其称为具有更清晰语义的东西……例如“公寓号”?

它破坏了整个地址概念的语义。你真的不知道你在这两个领域都有什么。除了这两个字段的连接可能会导致“普通旧地址”。但是“Line 1”和“Line 2”本身并没有任何意义。是否“应该”分别进入每个?我从来没有见过它。为什么我们在第 3 行时没有地址?

我一直在考虑它并意识到因此,我并不真正信任数据库中的地址数据。整个字段通常是不稳定的,因为您无法真正对其进行验证(一些地址有道路和门牌号码,其他地址有街道和大道)。除了这些天,你可以做一些事情,比如根据地理位置 api 验证字段。但仅仅因为“第 2 行”的事情,你不能真正确定你在做什么。我应该结合(第 1 行 + 第 2 行),然后验证吗?如果我要更正用户的原始输入(“您是说 xxx”),我该怎么办?我只是说,“是的,地址第 2 行并没有真正做任何事情......我只是把你的验证输入转储到第 1 行。”为什么我什至让最终用户(和我自己)有机会感到困惑。

在我看来,该字段应该是地址(街道 + 门牌号),或者如果我们要拆分,请正确执行并单独询问道路和门牌号。

【问题讨论】:

    标签: database database-design schema


    【解决方案1】:

    允许松散的数据输入绝不是一个好主意。如果您必须支持多行地址,请使用名为 address1 和 address2 的 2 个文本框。不要使用非结构化输入格式(textarea)来收集结构化信息(地址)。

    【讨论】:

    • 将地址字段拆分为结构化字段,如门牌号、街道、套房等......将是另一种解决方案。
    【解决方案2】:

    实际上,在极少数情况下,用户甚至可能希望拥有 第三 个地址行。对此的最佳解决方案是使用<textarea>,它将接受更复杂地址的换行符并完全按照数据库中输入的地址存储地址。

    【讨论】:

    • Ho\nw m\nan\ny l\nin\nes\n do\n yo\nur\n ad\ndr\nes\ns l\nab\nel\ns l\net\n你\nu p\nri\nnt\n?
    • 即使该字段不是文本区域,聪明的用户仍然可以在 address1 和 address2 字段中发送带有换行符的 HTTP POST。无论哪种方式,您都必须处理意外的换行符!
    • 这不是关于格式错误的输入,而是关于告诉用户您可以接受任意数量的地址行(通过呈现一个文本区域)并且只有在用户早已离开并且您正在打印之后才发现地址标签,您无法处理他们的(有效)输入。
    • 和以前一样,对于任何输入类型,您都必须查看换行符。也许您的标签可以处理 21 行地址。也许只有三行。无论输入字段类型如何,都可以根据需要应用业务逻辑来验证输入。不要依赖 UI 元素为您进行数据验证。
    【解决方案3】:

    公司有时将地址行 1 用作注意名称,这使得地址行 2 成为地址本身所必需的。想象一下:

    名称:微软

    地址 1:收件人:比尔·盖茨

    地址 2:一种微软方式

    ...

    【讨论】:

      【解决方案4】:

      它并不总是一个公寓号码。它可以是一层(单栋住宅、多栋住宅)或其他东西。

      【讨论】:

      • 套房号、邮件站点、公司名称等。而当你进入外国地址时,有些地方有多个线路地址是很常见的。
      猜你喜欢
      • 1970-01-01
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      相关资源
      最近更新 更多