6

MSISDN(電話番号)の保存に使用するのに最適なデータ型は何ですか。

世界中の任意の電話番号を保存できる必要があります。

国際ダイヤルコードを含む、可能な最大MSISDN長を知っている人はいますか?

たとえば、南アフリカの電話番号は+ 27xxxxxxxxxであり、+を除いて11桁になります。

+を保存する必要はありません。

前もって感謝します

4

2 に答える 2

12

BIGINTを使います。varcharの使用は絶対に避けてください。varcharまたはcharを使用することは非常に悪い考えです。

理由。Varchar / charはより多くのスペースを占有し、ルックアップと相互参照の実行に時間がかかり、インデックスも大きくなります。

テーブルを設計するときは、設定された行の長さでテーブルを維持しようとすると、読み込みが速くなります。テキストフィールドが必要な場合は、varcharのオーバーヘッドコストが高いため、varcharの代わりにcharを使用するのが最適な場合がよくあります。

テレコムで12年間働いており、現在VoIP/SMSプラットフォームの設計/最適化を行っています。私がシステムを修正するためにやってきたときの一番のキラーは、いたるところにあるvarcharsです。

ちょうど私の0.02の価値。

于 2012-07-11T12:20:38.733 に答える
3

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)を使用できます。

于 2012-07-10T16:33:31.930 に答える