電話のSQL varchar(length)で考慮すべき世界最長の電話番号は何ですか


200

SQL varchar(length)for phoneで考慮すべき世界最長の電話番号は何ですか。

考慮事項:

  • +国コード
  • ()市外局番
  • エクステンションエクステンションのx + 6の数字(8にする{スペース})
  • グループ間のスペース(つまり、アメリカの電話では+ x xxx xxx xxxx = 3スペース)
  • ここに私はあなたの助けが必要です、私はそれが世界的になりたいです

私の特定のケースでは、カードなどは必要ないことを考慮してください。番号は国コードで始まり、内線番号で終わります。FAX/電話などのコメントも、通話カードの必要もありません。


1
数値を長い値に変換するのが良い解決策になると思います


1
@MattDiPasqualeはすでにここで言及さていますが、ありがとうございます!
Shimmy Weitzhandler、2015年

2
そうです、しかしその答えは私が与えたリンクを含んでいませんでした。どういたしまして。:-)
ma11hew28

回答:


79

20文字しか格納しない場合、varchar(30)とvarchar(100)の間にオーバーヘッドの違いがないことを十分に考慮して、慎重に、50にしてください。


26
参考までに、オーバーヘッドはありますか?回答に出典を含めてください。そうすれば、それを基に基礎を学ぶことができます。
Shimmy Weitzhandler 2010

6
私はそれが事実であることを知っていますが、常にそうであるとは限りません。MySQL(たとえば)では、全長がソートに使用されます。少なくともいくつかの最小限の労力をかけることが最善です。
モーガン・トッカー、2010

15
2つの列サイズの間にストレージサイズの違いはありません。特定のデータベースに応じて、重大またはその他のオーバーヘッドが発生する可能性が非常に高くなります。たとえば、SQL Serverは、データページのサイズを予測し、アクセスと配置を最適化する多くの機能を失います。いつものように、テストします。
Matt Enright、2011

16
時期尚早の最適化は、すべての悪の根源です。
ハリンダカ2013

78
プラチナの一般化はさらに悪化します。心の中で最適化してシステムを設計することはありません決して あたり SE - 1は、不必要な目立たないとマイナー効率に途方もない時間を割いていたときに最適化が悪となります。
jbowman

167

「+」、「()」、「-」、スペース、お持ち物などを保存しないと仮定すると(そして、なぜあなたがそうするのか、それらは地方の習慣やネットワークの分布に基づいて変化するプレゼンテーション上の問題です)いずれにせよ)(ほとんどの国内ネットワークが接続されている)国際電話ネットワークに関するITU-T勧告E.164は、番号全体(国コードを含むが、ダイヤルアウトに必要な国際通話プレフィックスなどのプレフィックスは含まない)を指定します。国によって異なり、PBX内線番号などのサフィックスも含めて、最大15文字です。

呼び出しプレフィックスは、呼び出し先ではなく呼び出し元に依存するため、(多くの場合)電話番号を格納しないでください。データベースに個人アドレス帳のデータが保存されている場合(この場合、国際通話プレフィックスを保存するのが妥当です)、フィンランドでは、処理する必要のある最長の国際プレフィックス(Wikipediaによると)は現在5桁です。

サフィックスに関しては、一部のPBXは最大11桁の内線番号をサポートします(これもWikipediaよると)。PBX内線番号は別のダイヤリングプランの一部であるため(PBXは電話会社の交換とは別個です)、内線番号は、区切り文字を使用するか、別の列に格納することによって、電話番号と区別できる必要があります。


5
フォーマット文字( '+'、 '('、 ')'、 '-'、 ''など)を保存せず、異なる国の数値を保存する場合は、フォーマットを示す列を追加することをお勧めします番号が表示されるときの番号のタイプ。
2013年

38
結論:15chars。接頭辞と接尾辞を格納する場合、一番下の行は5 + 15 + 11 = 31です。
AlikElzin-kilaka 2014

3
@MattEnright、私はあなたの答えのAlikElzinのコメントを更新すべきだと思います。
Shimmy Weitzhandler

4
「+」はプレゼンテーション用ではありませんen.wikipedia.org/wiki/List_of_international_call_prefixes
qubodup

17

GSM仕様3GPP TS 11.11では、「ダイヤル番号」のMSISDN EF(6F40)に10バイトが設定されています。これは電話番号のGSM表現であり、その使用法はニブルスワップされているため(そして常に括弧の可能性があります)、22文字のデータで十分です。

私の経験では、開閉括弧のインスタンスは1つしかありません。それが上記の理由です。


10

それは少し悪いです。私は国際通話にコーリングカードを使用しているため、米国の市内番号+アカウント番号(6桁)+ピン(4桁)+ "一時停止" +上記の内容。

他のケースがあるかもしれないと思う


2
あなたは非常に良い点を得ました。メッセージに数行追加しました
。plsread

10
ただし、通話カードのリダイヤルはデータベースに含めないでください。これは、ダイヤルルールに従ってダイヤルするときに追加される部分です。保存される番号は、ダイヤル関連の情報を含まないISO形式である必要があります。
TomTom 2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.