MSISDN(電話番号)の保存に使用するのに最適なデータ型は何ですか。
世界中の任意の電話番号を保存できる必要があります。
国際ダイヤルコードを含む、可能な最大MSISDN長を知っている人はいますか?
たとえば、南アフリカの電話番号は+ 27xxxxxxxxxであり、+を除いて11桁になります。
+を保存する必要はありません。
前もって感謝します
MSISDN(電話番号)の保存に使用するのに最適なデータ型は何ですか。
世界中の任意の電話番号を保存できる必要があります。
国際ダイヤルコードを含む、可能な最大MSISDN長を知っている人はいますか?
たとえば、南アフリカの電話番号は+ 27xxxxxxxxxであり、+を除いて11桁になります。
+を保存する必要はありません。
前もって感謝します
BIGINTを使います。varcharの使用は絶対に避けてください。varcharまたはcharを使用することは非常に悪い考えです。
理由。Varchar / charはより多くのスペースを占有し、ルックアップと相互参照の実行に時間がかかり、インデックスも大きくなります。
テーブルを設計するときは、設定された行の長さでテーブルを維持しようとすると、読み込みが速くなります。テキストフィールドが必要な場合は、varcharのオーバーヘッドコストが高いため、varcharの代わりにcharを使用するのが最適な場合がよくあります。
テレコムで12年間働いており、現在VoIP/SMSプラットフォームの設計/最適化を行っています。私がシステムを修正するためにやってきたときの一番のキラーは、いたるところにあるvarcharsです。
ちょうど私の0.02の価値。
MSISDNは15桁に制限されており、プレフィックスは含まれていません。
GSMバリアントのMSISDNは、次のように構築されます。
MSISDN = CC + NDC (or NPA ) + SN
CC = Country Code
NDC = National Destination Code
NPA = Number Planning Area
SN = Subscriber Number
理想的には、+を保存する必要はありません。それは単に出口を表しています。
最長の国際電話コードは、スラーヤで電話をかける場合にのみ使用されます。これは88216です。他の場所に保存しておくことができます。
国際ダイヤルコードとMSISDNを組み合わせる予定の場合は、nvarchar(21)またはvarchar(21)を使用できます。