【问题标题】:Best Data Type and length to use for MSISDN storage用于 MSISDN 存储的最佳数据类型和长度
【发布时间】:2012-06-21 07:52:30
【问题描述】:

存储 MSISDN(电话号码)的最佳数据类型是什么。

需要能够存储世界上任何电话号码。

有谁知道最大可能的 MSISDN 长度,包括国际拨号代码?

例如,南非的电话号码是 +27xxxxxxxxx,这会产生 11 位数字,不包括 +

+ 不必存储。

提前致谢

【问题讨论】:

    标签: database storage phone-number sim-card msisdn


    【解决方案1】:

    我会使用 BIGINT。请不惜一切代价避免使用 varchar。使用 varchar 或 char 是一个非常糟糕的主意。

    原因。 varchar/char 占用空间大,查找和交叉引用比较慢,索引也比较大。

    在设计表格时,尽量让它们保持设定的行长,事情会运行得更快。如果您必须有一些文本字段,通常最好使用 char 而不是 varchar,因为 varchar 的开销成本很高。

    我在电信行业工作了 12 年,现在设计/优化 VoIP/SMS 平台。当我来修复系统时,头号杀手是无处不在的 varchars。

    只是我的 0.02 值。

    【讨论】:

      【解决方案2】:

      MSISDN 限制为 15 位数字,不包括前缀。

      GSM 变体中的 MSISDN 构建为:

      MSISDN = CC + NDC (or NPA ) + SN
      CC = Country Code
      NDC = National Destination Code
      NPA = Number Planning Area
      SN = Subscriber Number
      

      理想情况下,您不必保存 +。它只是代表一个出口。

      只有在使用 Thuraya 拨打电话时才会使用最长的国际拨号代码,即 882 16。您可以将其保存在其他地方。

      如果您打算将国际拨号代码和 MSISDN 结合使用,您可以使用 nvarchar(21) 或 varchar(21)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-27
        • 2018-01-27
        • 1970-01-01
        • 2011-10-24
        • 2010-09-27
        • 1970-01-01
        • 2016-11-26
        相关资源
        最近更新 更多