データベースに郵便番号を保存する必要があります。列の大きさはどれくらいですか?


103

Oracleデータベースでは、列がVARCHAR2であると想定しています。

米国の郵便番号は9です。

カナダは7です。

32文字が妥当な上限になると思います

何が欠けていますか?

[編集] TIL:12は、貢献してくれたすべての人に感謝します。


便利なリンクですが、精度が少し落ちる可能性があります。:EGは、それが実際には、彼らが4参考にいるときに、7つの文字であるとして、オーストラリアの郵便番号の一覧を示しen.wikipedia.org/wiki/Postcodes_in_Australiaとで入手可能な郵便番号の一覧www1.auspost.com.au/postcodes
rossp 2008年

re:私の以前のコメント-このリストがガイドとして役に立たないという意味ではありません。リストが長い郵便番号の横にあると仮定すると、最長の長さは9文字であるため、16文字またはその前後に十分な余裕があります。
rossp 2008年

また、国のリストは少し短いです。地球上にリストされている国よりも多くの国があると思います...
Robert Koritnik

2
en.wikipedia.org/wiki/List_of_postal_codesによると、「-」を格納している場合、最長は12文字です。それ以外の場合は11
Neil McGuigan

@CMS:このウィキペディアページへのリンクを更新することをお勧めします
Vajk Hermecz 2015年

回答:


51

ウィキペディアの郵便番号ページをざっと見て、32文字で十分です。16文字でもいいと思います。


8
良いリンク。US ZIP + 4の句読点を考慮に入れても、私の知る限り、どの国でも10文字で十分です。
ジョナサンレフラー

このリンクに基づいて、上記のリンク先のページから、私はチリのような国に対応するために、18でいいと思う:en.wikipedia.org/wiki/List_of_postal_codes
mopo922

5
チリは7文字です。参照したWebページは句読点の違いを示しているだけです。
EvilTeach

21

すでに@ neil-mcguiganによって提起されているように、ウィキペディアにはこのトピックに関するまともなページがあります。これに基づいて、12文字で実行する必要があります:http : //en.wikipedia.org/wiki/List_of_postal_codes

ウィキペディアの記事には254か国がリストされていますが、これは192の加盟国があるUPU(Universal Postal Union)に関してかなり良いことです。


2
モントセラトはたった8文字です。1110-1350は範囲を示します。discovermni.com/about-montserrat/montserrat-post-codes
Vajk Hermecz

マルタの似たような郵便番号には「AAA NNNN」のような一般的なものがあるため、おそらくウィキペディアを編集する必要があります。15文字でもかまいません。列の長さを調整する必要がある場合は後で問題が少なくなるためです。また、データ型を正しく使用すれば、15文字すべてをとることはできません(おそらくvarcharまたはnvarcharなど)。 。
Manohar Reddy Poreddy 2018年

12

格納する予定の実際のデータよりも大きいフィールドサイズを宣言するのはなぜですか?

アプリケーションの初期バージョンが米国とカナダの住所をサポートする場合(質問でこれらのサイズを呼び出しているという事実から推測しています)、フィールドをVARCHAR2(9)(またはVARCHAR2( 10)ハイフンをZIP + 4フィールドに格納する場合)。他の国の郵便番号に対して他の人が行った投稿を見ても、VARCHAR2(9)またはVARCHAR2(10)は、他の国のすべてではないにしてもほとんどの国で十分です。

必要に応じて、いつでも列を変更して長さを増やすことができます。しかし、何らかの理由で(つまり、配送ラベルに別の行が必要なため)、誰かが「クリエイティブ」を取得して50文字をVARCHAR2(50)フィールドに入力することを決定するのを防ぐのは一般に困難です。境界ケースのテストにも対処する必要があります(ZIPを表示するすべてのアプリケーションが50文字を処理しますか?)。また、クライアントがデータベースからデータを取得しているとき、通常、クライアントは、特定の行の実際の長さではなく、フェッチされるデータの最大サイズに基づいてメモリを割り当てています。この特定のケースではおそらく大したことではありませんが、状況によっては、1行あたり40バイトのRAMが適切なチャンクになる可能性があります。

余談ですが、郵便番号と+4拡張子を別々に保存することも検討してください(少なくとも米国の住所の場合)。一般に、地理的な地域ごとにレポートを生成できると便利です。+ 4の拡張子で分割するのではなく、ZIPコードにすべてをまとめたい場合がよくあります。その時点で、郵便番号の最初の5文字を​​除外する必要がないと便利です。


4
まあ、Pro * Cのようなばかげた方法でコーディングしていると仮定すると、成長に十分な大きさのフィールドがあることは、使用量が増加してもコードに手を加える必要がないことを意味します。
EvilTeach 2008年

はい、米国の郵便番号を5桁と4桁に分割しても、それを何に使用するかによっては、意味がある場合があります。たとえば、ある種の住所照合を行う場合は、最初にzip5で照合し、あいまいな状況をzip 9で解決することをお勧めします。国コードの使用も役立ちます
EvilTeach

3

欠けているのは、郵便番号を特別に処理する必要がある理由です。

あなたが本当にする必要がない場合はWORK郵便番号で、私はそれを心配ありませんお勧めします。仕事とは、住所ラベルの印刷などに使用するのではなく、特別な処理を行うことを意味します。

VARCHAR2(50)の3つまたは4つの住所フィールドを作成し(たとえば)、ユーザーが好きなように入力できるようにします。

本当に郵便番号によって注文またはトランザクションをグループ化する必要がありますか?国によってこの分野のスキームは大きく異なるので、私はそうは思いません。


同意する。VARCHAR2フィールドを使用することは、郵便番号のようなフィールドにとって実際には問題ではありません。少し大きすぎると、詳細を入力できないため、1人の顧客を煩わせるよりも優れています。
Toby Allen

また、データベース(少なくともDB2)はそれらのストレージを最適化してストレージスペースを無駄にしないため、varcharは便利です。
paxdiablo 2008年

1
国や郵便番号でソートすると、場所によっては郵便料金が安くなることを指摘します。
EvilTeach 2008年

10
Disgaree。いつか、データベース内のアドレスを検証する必要があると判断する場合があります(たとえば、入力ミスやデータ入力エラーを修正するため)。これは、すべてを示すだけでなく、データモデルを適切に構築することの利点を見つけるときです。バケツ。
ゲイリーマイヤーズ

1
@Pax郵便番号の本部(最初の文字/ 2文字)で事前に分類されたロイヤルメールにバルクメールを渡すと、通常の2等郵便よりも安価なMailSortで配送できます。それはほんの一例です。
リチャードガズデン

3

正規化?郵便番号は複数回使用される場合があり、通りの名前や町の名前に関連付けられている場合があります。別のテーブル。


面白い。理由がなく、単に反対の見方をしている。+1
EvilTeach

通常、郵便番号は道路の片側のブロックを参照します。より広い地域を見つけるには、郵便番号の前半を選択します。この情報を別のテーブルに置くことは、実際には何の助けにもならず、維持するのがより複雑になります。
RevNoah 2013

4
@EvilTeach:トピックから外れたため、反対票が投じられたに違いない。世界中のすべての郵便番号を格納するための列の大きさはわかりますか?No.
wmax

2

カナダの郵便番号は6文字のみで、文字と数字(LNLNLN)の形式です。


3
カナダの郵便番号は、真ん中に「ANA NAN」という7文字が空白です。
EvilTeach 2008年

1
ただし、スペースは常に中央にあるため、保管する必要はありません。
Graeme Perrow、

1
スペースはデータの一部ではないようです:「注:カナダの郵便番号は常に同じ順序でフォーマットされます:アルファベット文字/数字/アルファベット/数字/アルファベット/数字(例:K1A0B1)。」カナダポストのウェブサイトからです。
tegbains 2008年

2
スペースの省略が「正規化」と関係があるとは思いません。これは単に表示の問題です。アカウント番号のダッシュのように。私はそれを保存しませんし、インデックスを付けることができるCountryCode(int)フィールドよりもカナダの郵便番号を識別するのに依存しません。データとプレゼンテーション層を分離することは、それを行う正しい方法です。
サム

2
Canada Postは、封筒を扱う際に郵便番号のスペースを優先します。スペースと一緒に保管し、入力時に検証を処理するのが最善です。
RevNoah 2013

2

英国は標準を公開しました:英国政府データ標準カタログ

Max 35 characters per line 

国際郵便住所:

Minimum of 2 lines and maximum of 5 lines for the postal delivery point 
details, plus 1 line for country and 1 line for postcode/zip code 

英国の郵便番号の長さは次のとおりです。

Minimum 6 and Maximum 8 characters 

1

データベースに郵便番号を統合する場合は、geonamesデータベースを使用するのが最適です。使用して理解するのは難しいですが、私たちのようなユーザーが自由に利用できる最大の地理データベースです。

他のすべてのそのようなデータベースは、多かれ少なかれ同じデータと構造を持っています。データベースから余分な情報や冗長な情報を削除するだけです。低負荷のシステムで無料のサービスを使用する場合は、制限が魅力的であり、jsonとajaxを使用してより簡単なインターフェースを提供します。ここで制限を確認できます

参考までに、郵便番号を保存するにはvarchar(20)で十分です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.