15

私は米国固有の Web アプリケーションを作成しているため、他の国が郵便番号に使用する形式は重要ではありません。データベーステーブルにロードしようとしている米国の郵便番号のリストがあります。

  • 米国の 5 桁の郵便番号
  • 緯度
  • 経度
  • usps分類コード
  • 州コード

郵便番号は、クエリの対象となるため、主キーです。私はミディアム int 5 を使い始めましたが、先頭にゼロがある郵便番号が切り捨てられます。

char5 の使用を検討しましたが、char 変数に対するインデックス作成のパフォーマンスへの影響が心配です。

だから私の質問は、郵便番号を保存するのに最適なmysqlデータ型は何ですか?

注: 郵便番号に関連する他のいくつかの質問でそれを見てきました。私は米国の 5 桁の郵便番号にのみ関心があります。したがって、他の国の郵便番号形式を考慮する必要はありません。

4

3 に答える 3

29

char(5) が正しい方法です。文字列のインデックス作成は、特にデータ セットが非常に小さい場合に、非常に高速です。

郵便番号は真の数値データではないため、郵便番号に整数を使用しないでください。

編集して追加:数値的に重要でないデータに数値を使用しない正当な理由については、これを確認してください: データベースに米国の郵便番号を格納するために整数列を使用することは良い考えですか?

于 2009-09-29T17:30:50.010 に答える
2

中間の INT(5) ZEROFILL を使用すると、先行ゼロが追加されます。フォーマットの問題でインデックスとパフォーマンスに影響を与える必要はありません。

于 2009-09-29T17:32:01.630 に答える
1

Char(6) にすれば、カナダの郵便番号も扱えます。

最大 100,000 の 5 桁の郵便番号があり、テーブル全体をメモリ常駐にしたとしても占有するスペースがどれほど少ないかを考えると、そうしない理由はありません。

于 2009-09-29T17:33:55.527 に答える