1

重複の可能性:
国際住所をデータベースに保存するための「最良の」方法は何ですか?

アプリケーションをグローバルにしたいと思います。つまり、複数の国(つまり、オーストラリア、ニュージーランド、米国、英国)の人々がリストを配置できます。国によって郵便番号の形式が異なり、地域の分類も異なるため(オーストラリアとアメリカには州がありますが、カナダや英国などの場所は異なります)、このすべての情報を効果的に保存するにはどうすればよいですか?

このようなもののMySQLデータベーススキーマがどのようになるかを頭の中で想像することはできません。座標を保存する必要はありません。ユーザーの国、郊外/市/地域、州/県だけを保存する必要があるため、すべての情報を適切に分類して、分類されたリストに表示できます。

4

1 に答える 1

2

いくつかの点で、それはあなたのサイトがどれだけのトラフィックを獲得しているかに依存します。一部の人はおそらくこれに夢中になるでしょうが、それが小規模なWebサイトであり、トラフィックの増加があまり期待されていない場合は、テーブルを正規化する価値がない可能性があります。その場合、国を文字通りの国名として保存するだけで問題ない場合があります。

ただし、ほとんどの場合(特に国名などのデータを繰り返す場合)、正規化が必要なメソッドを見てきました。たとえば、すばやく簡単なアプローチとして、国ごとに専用のテーブルを作成し、通常は自動インクリメントによって整数値を割り当てることができます。そのような状況では、各ユーザーに関連付けられた国IDを割り当てることができます。クエリを実行するときは、2つのテーブルを結合するだけです。これは通常、より効率的な方法です。

非常に単純でありながら有用なリファレンスとして、Learning PHP、MySQL、およびJavascript by O'reillyの本には、上記の方法でテーブルを正規化する同様の例があります。ほとんどの場合、データが繰り返されることになります。データを最小限に抑え、効率と理論と実用性のバランスをとることが重要です。

于 2012-09-10T01:52:05.417 に答える