39

海外の住所をデータベースに保存するには、「」とは何ですか?スキーマの形式で回答し、正規化を選択した理由を説明してください。また、各フィールドのタイプと長さを選択した理由も説明してください。国際的な住所をデータベースに保存する "最良の方法"とは何ですか?

注:必要と思われるフィールドを決定します。

+0

私はこの昨年について怒った! [データベース内のアドレス](http://mojoai.blogspot.com/2010/12/addresses-in-databases.html) –

+0

ポストコードは複雑になる可能性があります。たとえば、アイルランド共和国には一般的な郵便番号システムはありませんがダブリンのポストコードが存在します(6Wを除くすべての番号は1-24です)。国の助けも – Geoglyph

+1

以下の議論.. http://stackoverflow.com/questions/1159756/how-should-international-geographical-addresses-be-stored-in-a-relational-databa – chandraP

答えて

24

プレーンフリーフォームテキスト。

世界のすべての郵便番号を検証するのは難しいです。国の固定リストはあまりにも政治的に敏感である。義務的な州/地域/その他の行政区画はちょうど普通のものではありません(グレーター・ロンドンは郡ではないので、私はどちらの郡に住んでいるのかよく分かりません)。

さらに、それは単に不要です。あなたのアプリケーションは、深刻な方法でアドレスをモデル化する可​​能性は非常に低いです。郵便住所が必要な場合は、郵便住所を尋ねます。ほとんどの人は、郵便以外のものを置くほど愚かではなく、もしそうであれば、新しく購入したアイテムをバイバイにキスできます。

これは例外ではありませんが、自然にある国に制限されているものを実行している場合は例外です。このような状況では、郵便番号を識別するのに十分な{郵便番号、家屋番号}のペアを尋ねる必要があります。米国では、あなたは郵便番号の拡張で同様のことを達成できると思います。

+0

グレーター・ロンドンは郡ではないかもしれませんが、ロンドン市に住んでいない限り、実際にはサリー、ケント、エセックスなどに住んでいることがわかります。 – belugabob

+3

別の行政区画を置くことは、地域別のフィルタリングに便利です。ほとんどの製品を販売する世界/国のどの部分を知っているのですか? –

+1

最高の状態で、国を選択可能にしてください。国はまれに作成されます。 – DrPizza

-3

データをどのように使用するかについてもう少し詳しく説明する必要があります。たとえば、City、State、Countryのようなフィールドは、単一テーブルのテキストでも、外部キーを持つ別のテーブルにリンクされているコードでもかまいません。

最も簡単なのは

Address_Line_01(必須、非空白)になり Address_Line_02 Address_Line_03 ランドマーク 市(必須) ピン(必須) Province_District 州(必須) 国(必須)

上記のすべては、適切なフィールド長のText/Unicodeにすることができます。

該当する電話番号。

+1

のみ房州がある。 –

9

これまで私は、自分のウェブサイト上のups/fedex配送先住所書式の後に国際化する必要があったフォームをモデル化しました(私たちはすべて国際的な注文を処理する方法を知らないと思いました)。使用するフィールドは、スキーマを設定するための参照として使用できます。

5

一般に、アドレスを希望する理由を理解する必要があります。発送/郵送用ですか?それから本当に一つの要件があり、国を分けてください。他の行はフリーフォームであり、ユーザーが入力します。その理由は、メールの一般的な転送方法です。外国の受信メールは、他のアドレス行を見ずに転送されます。したがって、詳細な情報は、その国にあるメール選別機によってのみ解析されます。受信者と同様に、彼らは国内の慣習に精通しています。

(UPSはいくつかの小さな欧州諸国を束ねるかもしれません、例えば、すべての低国はおそらくベルギーから供給されています。)

+0

あなたは偶然、「着信」の代わりに「発信」を意味しましたか? – rinogo

2

国/都市と住所のテキストを追加すると問題はないと思います。報告のために国と都市を別々にする必要があります。マネージャいつもあなたが期待していないこれらの種類のレポートを要求します。大規模なデータベースを通じてLIKEクエリを実行することをお勧めしません。

2

Facebookは面倒なことを言わないでください。しかし、データベースの全体的な構造は、毎日起動する多くのWebアプリケーションで見過ごされているようです。明らかに、私は、アドレス構造を持つすべての潜在的な変数をいくつかの苦労なしにカバーする完璧なソリューションはないと思います。それは、オートコンプリートのFacebookと組み合わせて、位置入力データを取って冗長エントリの大半を取り除くというものだ。彼らはデータベースを十分に体系化して、クライアントにリアルタイムで低コスト、低エラーの方法で自動補完情報を提供し、既存のリストから正しい場所を多かれ少なかれ選択できるようにします。

ベストソリューションは、希望の地理的な範囲を含む第三者のデータベースにアクセスし、それを使って最初にユーザーの場所情報をシードすることだと思います。これはあなた自身の作成のgroudworkを行うことを避けることができます。あなたのサーバー上の負荷を軽減するには、新しいユーザーがサードパーティのサプライヤから直接正しいオートコンプリート情報を受け取れるようにすることができます。最終的には、都市、国などの場所情報のオートコンプリートを、ユーザーの入力データから独自のデータベースに格納されている情報から補うことができます。

関連する問題