[解決済み] 全世界の住所に共通する住所データベースはありますか?[クローズド]
質問
私はプログラマーで、世界のストリートアドレス構造をデータベースに格納するための実用的なアプローチを必要としています。では、街角の住所を保存するための最適かつ一般的なデータベース設計はどれでしょうか?それは、使用するのが簡単で、クエリが速く、世界のすべての住所を保存するために動的であるべきです。
どのように解決するのですか?
標準的なフィールドのセットで、多くの異なる国の住所を表現することが可能です。名前または番号が付けられた建物が位置する、名前の付いたアクセス ルート (大通り) の基本的な考え方は、時々中国を除いて、かなり標準的なものです。その他に、一般にローカリティと呼ばれる居住地(市町村)の名称、地域の名称、英数字の郵便番号などがほぼ共通している。郵便番号は、郵便番号とも呼ばれ、国によっては純粋な数字のみであることに注意してください。本当に一般的なものにしたいのであれば、多くのフィールドが必要になります。
万国郵便連合(UPU)は、多くの国の住所データを 標準フォーマット . UPU のフォーマットは、国全体のすべての住所を (利用可能なフィールドの精度に至るまで) 保持しており、したがってリレーショナルであることに注意しましょう。顧客の住所を保存する場合、すべての住所のごく一部しか保存されないので、 すべてのフィールドを含む単一のテーブル (またはフラットフォーマット) を使用して、 1行に1つの住所を保存するのがよいでしょう。
住所を保存するための合理的な形式は、次のようになります。
- アドレス行1~4
- 所在地
- 地域
- 郵便番号 (または郵便番号)
- 国名
住所録1~4行目には、以下のような構成要素を入れることができます。
- 建物
- サブビルディング
- 構内番号(家屋番号)
- 前提範囲
- 周辺道路
- サブサラブレッド
- ダブルディペンデントロカリティ
- サブロカリティ
多くの場合、住所は3行しか使用されませんが、これでは不十分なことがよくあります。もちろん、正式な形式ですべての住所を表すためにもっと多くの行を必要とすることは可能ですが、行の区切りとして常にカンマを使用できるため、情報を取得することは可能です。
通常、データの分析は、地域、地方、郵便番号、国ごとに行われ、これらの要素は、ユーザーがデータを入力する際にかなり理解しやすくなっています。このため、これらの要素は別のフィールドとして保存する必要があります。しかし、ユーザーに郵便番号や地域の入力を強制しないようにしましょう。
地域性は、特に地図上の地域性と郵便上の地域性の区別が不明確な場合があります。郵便局所在地は、郵便局によって判断されるもので、時には近くの大きな町であることもあります。しかし、郵便番号は通常、問題や矛盾を解決し、公式の郵便区域が使用されていなくても、正しい配達を可能にします。
関連
-
MySQL】1136 - 列数が1行目の値数と一致しない問題を解決
-
[解決済み] ストアドプロシージャ 'dbo.aspnet_CheckSchemaVersion' が見つかりませんでした。
-
[解決済み] SQL Server FOR EACH ループ
-
[解決済み] SQLのカラム名があいまいな場合のクエリエラー
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] SQL Server における DateTime2 と DateTime の比較
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?
-
[解決済み] 自由形式の住所/郵便番号をテキストから解析し、コンポーネントに変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
org.postgresql.util.PSQLException: ERROR: リレーション "userinfo" の列 "loginid" が存在しません。
-
[解決済み] 指定されたスキーマにテーブルが存在するかどうかを確認する方法
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] mysqldumpで特定のテーブルをスキップする
-
[解決済み] NOT IN vs NOT EXISTS
-
[解決済み] SQL Serverには、.NETのMath.Maxのような2つの値を取るMax関数はありますか?