2012-06-21 88 views
6

什麼是用於存儲MSISDN(電話號碼)的最佳數據類型。用於MSISDN存儲的最佳數據類型和長度

需要能夠存儲世界上的任何電話號碼。

有誰知道最大可能的MSISDN長度,包括國際撥號代碼?

例如南非的電話號碼是+ 27xxxxxxxxx導致11位排除+

的+不必存儲。

在此先感謝

回答

10

我會使用BIGINT。請不惜一切代價避免使用varchar。使用varchar或char是一個非常糟糕的主意。

原因。 varchar/char佔用更多空間,查找和交叉引用的速度更慢,索引也更大。

設計表格時,試着讓它們保持設定的行長度,事物的運行速度會更快。如果必須有一些文本字段,通常最好使用char而不是varchar,因爲varchar的開銷成本很高。

我在電信工作了12年,現在正在設計/優化VoIP/SMS平臺。當我修復系統時,頭號殺手是無處不在的變種。

只是我的0.02值得。

3

MSISDN限制爲15個數字,不包括前綴。

MSISDN在GSM變體構建爲:

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)。

相關問題