3

我想在数据库中存储英国邮政编码。可以在没有空格的情况下存储这些邮政编码吗?

4

7 回答 7

1

可以存储没有空格的邮政编码,但绝对建议在显示/输出时正确格式化它们。

您可以在此处查看允许的邮政编码格式。空格后面总是有 3 个字符,因此很容易重新插入。

于 2011-11-07T15:08:25.950 回答
1

在此处输入图像描述

最后3个总是xyy

  • x数字 0-9
  • yy阿尔法 AZ

之前的任何内容都是网格参考的第一部分,并且具有各种格式。

于 2014-07-14T13:08:17.107 回答
0

我们存储邮政编码,我们接受任何格式、空格或无空格的输入,但随后删除或更正数据存储条目

我们发现在将数据用于其他用途时,这种方式效果更好

为什么要在没有空格的情况下存储?

于 2011-11-07T15:06:33.673 回答
0

英国邮政编码有多种格式:格式 列表

为什么不能存储空格?

于 2011-11-07T15:07:36.843 回答
0

正如其他人所说,删除所有空格并存储它们没有问题,如果这是您想要做的。如前所述,您始终可以在最后三个字符之前使用空格来格式化它们。

但是,我通常会以任何合理的格式使用它们,去掉所有空格,然后将它们与这一个额外的空间一起存储。存储要求不是问题,并且可以更轻松地按原样显示。您需要在以某种方式保存之前解析格式,因此您可以根据需要保存它。

于 2011-11-07T15:27:44.927 回答
0

删除空间通常是安全的。正如其他人所说,如果需要,您可以稍后重新插入空间。Outcode 和 Incode 之间存在空格通常不会影响邮寄。英国邮政编码中不应包含任何非字母数字字符,因此如果您看到破折号,您可以安全地将其删除。

我为 Experian Data Quality 工作,如果您的目标是干净的数据,您可能需要考虑使用地址验证 Web 服务,例如我们的Pro On Demand产品。这将确保您捕获正确的邮政编码,因为它们会随着时间而改变,并且它的格式适合您的数据库。

于 2014-02-04T22:43:26.000 回答
0

没有空格也可以存储,因为您始终可以在每个邮政编码字符串中添加一个空格 - 启发式非常简单。

正如其他一些用户非常乐于解释的那样,所有英国邮政编码都有两组数字和字母,用空格隔开。空格后面的组总是包含一个数字,然后是两个字母(因此,空格后面总是有三个字符)。空格前的组将有两个、三个或四个字符(请参阅此Wikipedia 页面)和下面的屏幕截图。

在此处输入图像描述

因此,您可以通过在倒数第三个字符之前添加一个空格来重新创建正确的间距。

R中,它看起来像这样(但相同的逻辑也适用于其他语言,例如Python):

#list of example postcodes
postcodes = c("LS176JA", "OX41EZ", "A99AA")

#add space to each postcode in the list of example postcodes
for (postcode in postcodes){
  last_three = str_sub(postcode, start = -3)
  first_x = str_replace(postcode, last_three, "")
  final_postcode = paste0(first_x, " ", last_three)
  print(final_postcode)
}

返回:

[1] "LS17 6JA"
[1] "OX4 1EZ"
[1] "A9 9AA"
于 2021-09-10T16:31:41.543 回答