电话号码真的是数字吗?

今天早上醒来,我被Stackoverflow上的一场辩论所启发,开始研究如何最好地存储数字。
我的第一个想法是它们肯定是字符串。你如何保存括号、破折号、加号以及我们电话簿中出现的所有其他可能字符。

因此我内心的电话号码 FBI 本能开始进行一些调查,以下是我的分析;假设(假号码)为例。

  • 诸如 +234、+46、+1… 之类的前缀是拨号代码或国家代码。
  • 加号 + 也可以用 00 表示,是指示您正在拨打国际号码的信号或代码。因此, 也可以表示为 。
  • (0) 通常表示您拨打的号码与您位于同一地区。因此,您可以直接拨打 ,无需国家代码。
  • 接下来的 3 至 4 位数字是该号码所在的区域/地区/移动提供商代码。
  • 其余数字是您的用户号码,可以唯一标识您(在号码移植之前,用户号码的某些部分甚至可能指示您的网络提供商)。
  • 像 234-805-GOT-MILK 这样的数字只是一个电话代码,在拨打之前最终会转换为实际的电话号码。

那么我们应该如何在数据库中存储电话号码?

将 + 号和括号视为代码,可帮助移动设备确认在呼叫您提供的号码时要使用哪条路由。

这意味着将电话 拉脱维亚手机号码列表 存储为电话号码就是保存了该手机的电话代码或路线。因此,如果您打算存储目的地而不是路径,那么请继续将目的地存储为电话号码。是的,是实际数字而不是代码。

这更高效、更简单、更容易维护、查询性能更好,如果您预计或正在处理数百万条记录,甚至可以节省一些存储空间。

拉脱维亚手机号码列表

如何验证电话号码的长度?

我支持以下论点:这是一条业务规则电话号码,最好将其保留在应用程序代码中。虽然数据库的 VARCHAR 允许您设置固定的最大长度,但它也可能接受234abcxyz作为电话号码。

使用数据库级别验证电话 芬兰电话号码格式 的最大长度可能不是最好的,并且可能意味着每次验证发生变化时您都必须更改模式。

多余数字与无效数字的情况。

如何将国家代码与号码分开?

幸运的是,有些图书馆了解这些事情的复杂运作方式电话号码,并会帮助您识别电话 加拿大电子邮件线索 所属的国家/地区。注意:您必须向这些图书馆提供号码的国际格式。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注