2011-01-12 13 views
2

さまざまな国の携帯電話を保存するアプリの電話番号を保存するには、どのような方法が最適です。電話番号を保存する

国コードをintとして格納し、電話番号を文字列として格納することを考えています(アプリケーションレベルでは、その文字列内の数字のみを許可します)。

私は電話番号をプログラムで使用することになるだろうか、これは単に画面上でそれらを示すか、それらを印刷するためのものされているSQL Server

答えて

3

をしています使用していますか?後者の場合は、単にnvarcharを使用します。その理由は、異なる国の人々が異なる電話番号の習慣を持っているからです。ドイツの人々は、多くの場合、状況によっては(x)はXXX/XXXXXXX

+2

なぜnvarcharですか?電話番号は多言語ではありません。余分なスペースが必要ですか?nvarcharはvarcharよりも高い付加価値を受け取りますか? –

+0

@Caspar:驚きがないことを確認するだけです。私はロシアやタイの誰かがそこに書き込む人がいるかどうか分からないので、私は心の平和のためにスペースを余分に取ることをお勧めします。膨大な量のデータについて実際に話していると私の選択は異なるかもしれませんが、ほとんどのアプリケーションではそうではありません。 –

1

を書きながら

XXXXXXX-XXXX

例えば、米国の番号は次のようになりアプリが設定されている場合は、数値の電話番号フィールドを持つことができ、国に基づいて番号のタイプを追跡することができます。これにより、表示目的でマスクを制御できるようになります。

ストリングとして保存すると、誰もが電話番号を行う方法が異なります。でも、北米では、あなたが見つけることができます(XXX)XXX-XXXX、XXX-XXX-XXXX、xxx.xxx.xxxxなど

2

私は

varchar 

を使用して、適切な長さを選択することになります(例:32/64 /など)

数値型ではないため、数学的な計算をしないためです。

3

電話番号はあなたが考えるよりも複雑です。例えば、Linodeリストこの:

Phone: (609) 593-7103 
Fax: (615) 250-4945 
SIP: [email protected] 
ISN: 0*862 (FWD, dial **012 first) 

だからあなたがそれらを保存する方法を彼らが何であるかに依存しようとしています。私はできるだけシンプルにしておきます。単に「連絡先情報」を保存するだけの場合は、フリーフォーマットのnvarcharにしておき、それを読んでいるユーザーに解釈方法を決定させてください。あなたは電話番号の具体的な目標を持っている場合、データはその目標と一致していることを確認、一方

[email protected] 
[email protected] 
[email protected] 

:2020年に、人々はのような電話番号を持つことになります。自動ダイヤルアウトのためにダイヤルシステムを制御する必要があるとします。次に、マニュアルを参照して、有効な電話番号として受け入れる内容を確認する必要があります。

通常、複雑さを増やしてから、いくつかのメリットが得られることを確認してください。