正如问题所述,为什么在 phone_number 列中将电话号码存储为字符串而不是整数被认为是最佳实践?

不确定我是否理解这样做的理由。请帮助解决这个问题!

谢谢!

最佳答案

电话号码是数字字符串,它们不是整数。

考虑例如:

  • 以不同的基数表示电话号码会使其变得毫无意义
  • 将两个电话号码相加或相乘,或者对电话号码进行任何数学运算,都是没有意义的。结果不是另一个电话号码(除非有意外)
  • 电话号码旨在“按原样”输入到连接的设备中。
  • 电话号码可能有前导零。
  • 电话号码的操作,例如添加区号,是字符串操作。

  • 存储电话号码的字符串版本可以使这一点清晰明确。

    历史:在旧的脉冲编码拨号系统上,电话号码中每个数字的代码都以与数字相同的脉冲数(或“0”的 10 个脉冲)发送。这可能就是我们仍然使用数字来表示电话号码部分的原因。见 http://en.wikipedia.org/wiki/Pulse_dialing

    关于ruby-on-rails - 为什么最好将电话号码存储为字符串而不是整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23637057/

    10-15 13:26