一見すると、データベーステーブルに郵便番号を保存するための2つの基本的な選択肢があるように見えます。
- テキスト(おそらく最も一般的)、つまり
char(5)
+4varchar(9)
拡張子をサポートする - 数値、つまり32ビット整数
国際的な懸念がないと仮定した場合、どちらもデータの要件を満たします。以前は、通常、テキストルートを使用していましたが、誰かが反対のことをしているのではないかと思いました。簡単に比較すると、整数法には2つの明らかな利点があるように見えます。
- その性質上、自動的に数値のみに制限されます(一方、検証なしでは、テキストスタイルは、私の知る限り、郵便番号では有効ではない文字などを格納できます)。ただし、これは、ユーザー入力の検証を通常どおりに行うことができる、または行わない、または行わないようにする必要があるという意味ではありません。
- 5バイトや9バイトではなく、4バイト(9桁の郵便番号でも十分なはずです)であるため、必要なスペースが少なくて済みます。
また、ディスプレイの出力をそれほど損なうことはないようです。ToString()
数値を平手打ちし、単純な文字列操作を使用してハイフンやスペースなどを+4拡張子に挿入し、文字列フォーマットを使用して先行ゼロを復元するのは簡単です。
int
米国のみの郵便番号のデータ型として使用することを思いとどまらせるものはありますか?