什么是最长的全球电话号码,我应该考虑在SQL varchar(长度)手机

什么是最长的全球电话号码,我应该考虑在SQL varchar(length)手机。

注意事项:

  • +国家代码
  • ()为区号
  • 扩展扩展的x + 6数字(所以使它8 {空间})
  • 组间空格(即美式电话+ x xxx xxx xxx = 3个空格)
  • 这里是我需要你的帮助的地方,我希望它在全球范围内

考虑一下,在我现在的具体情况下,我不需要卡等数字以国家代码开头,并以扩展名,没有传真/电话等评论,也不需要电话卡的东西。

那么考虑到varchar(30)和varchar(100)之间没有任何开销差异,如果你只存储了20个字符,谨慎的方面,只是50。

假设你不存储诸如“+”,“()”,“ – ”,空格和你所拥有的东西(以及为什么你会这样做,它们是表示性的关注点,这些关注点会根据当地习俗和networking分布而变化无论如何),国际电话networking(大多数国家networking通过它连接)的ITU-Tbuild议E.164规定,整个号码(包括国家代码,但不包括拨出所需的国际呼叫前缀 ,因国家而异,也不包括后缀,如PBX分机号码)最多不超过15个字符

呼叫前缀取决于呼叫方,而不是被叫方,因此不应该(在许多情况下)与电话号码一起存储。 如果数据库存储个人地址簿的数据(在这种情况下存储国际呼叫前缀是有意义的),那么在芬兰,需要处理的最长国际前缀( 根据维基百科 )目前是5位数字。

至于后缀,一些PBX支持多达11位数字的扩展( 根据维基百科 )。 由于PBX分机号码是不同拨号scheme的一部分(PBX与电话公司的交换机不同),因此分机号码需要与电话号码区分开来,可以使用分隔符或将它们存储在不同的列中。

在GSM规范3GPP TS 11.11中 ,在拨号号码的MSISDN EF(6F40)中留有10个字节。 由于这是一个电话号码的GSM表示,并且它的用法是半字节交换,并且总是有括号的可能性,所以22个字符的数据应该足够多。

根据我的经验,只有一个开/关括号的例子,这是我对上述的推理。

更糟糕的是,我使用国际电话的电话卡,所以它的本地号码在美国+帐户#(6位数)+引脚(4位数)+“暂停”+你上面描述的。

我怀疑可能还有其他的情况