Oracleデータベースでは、列がVARCHAR2であると想定しています。
米国の郵便番号は9です。
カナダは7です。
32文字が妥当な上限になると思います
何が欠けていますか?
[編集] TIL:12は、貢献してくれたすべての人に感謝します。
Oracleデータベースでは、列がVARCHAR2であると想定しています。
米国の郵便番号は9です。
カナダは7です。
32文字が妥当な上限になると思います
何が欠けていますか?
[編集] TIL:12は、貢献してくれたすべての人に感謝します。
回答:
ウィキペディアの郵便番号ページをざっと見て、32文字で十分です。16文字でもいいと思います。
すでに@ neil-mcguiganによって提起されているように、ウィキペディアにはこのトピックに関するまともなページがあります。これに基づいて、12文字で実行する必要があります:http : //en.wikipedia.org/wiki/List_of_postal_codes
ウィキペディアの記事には254か国がリストされていますが、これは192の加盟国があるUPU(Universal Postal Union)に関してかなり良いことです。
格納する予定の実際のデータよりも大きいフィールドサイズを宣言するのはなぜですか?
アプリケーションの初期バージョンが米国とカナダの住所をサポートする場合(質問でこれらのサイズを呼び出しているという事実から推測しています)、フィールドをVARCHAR2(9)(またはVARCHAR2( 10)ハイフンをZIP + 4フィールドに格納する場合)。他の国の郵便番号に対して他の人が行った投稿を見ても、VARCHAR2(9)またはVARCHAR2(10)は、他の国のすべてではないにしてもほとんどの国で十分です。
必要に応じて、いつでも列を変更して長さを増やすことができます。しかし、何らかの理由で(つまり、配送ラベルに別の行が必要なため)、誰かが「クリエイティブ」を取得して50文字をVARCHAR2(50)フィールドに入力することを決定するのを防ぐのは一般に困難です。境界ケースのテストにも対処する必要があります(ZIPを表示するすべてのアプリケーションが50文字を処理しますか?)。また、クライアントがデータベースからデータを取得しているとき、通常、クライアントは、特定の行の実際の長さではなく、フェッチされるデータの最大サイズに基づいてメモリを割り当てています。この特定のケースではおそらく大したことではありませんが、状況によっては、1行あたり40バイトのRAMが適切なチャンクになる可能性があります。
余談ですが、郵便番号と+4拡張子を別々に保存することも検討してください(少なくとも米国の住所の場合)。一般に、地理的な地域ごとにレポートを生成できると便利です。+ 4の拡張子で分割するのではなく、ZIPコードにすべてをまとめたい場合がよくあります。その時点で、郵便番号の最初の5文字を除外する必要がないと便利です。
欠けているのは、郵便番号を特別に処理する必要がある理由です。
あなたが本当にする必要がない場合はWORK郵便番号で、私はそれを心配ありませんお勧めします。仕事とは、住所ラベルの印刷などに使用するのではなく、特別な処理を行うことを意味します。
VARCHAR2(50)の3つまたは4つの住所フィールドを作成し(たとえば)、ユーザーが好きなように入力できるようにします。
本当に郵便番号によって注文またはトランザクションをグループ化する必要がありますか?国によってこの分野のスキームは大きく異なるので、私はそうは思いません。
正規化?郵便番号は複数回使用される場合があり、通りの名前や町の名前に関連付けられている場合があります。別のテーブル。
カナダの郵便番号は6文字のみで、文字と数字(LNLNLN)の形式です。
英国は標準を公開しました:英国政府データ標準カタログ
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