10

州と国をどのように保存すればよいですか?

オプション 1) states という名前のデータベース テーブルを作成し、'id'、'state'、および 'state_abbr' を含めることができます。次に、users テーブルの「id」でそれを参照できます。

オプション 2) PHP 配列を作成し、それを使用して州のドロップダウン メニューを設定し、データベースへのクエリを完全に回避することができます。配列のキーは、そのユーザーのデータベースに挿入された値になります。

状態は変化しないため、データは静的でなければなりません。この情報を保存する最善の方法とその理由は何ですか? PHP 配列の方が高速ではないでしょうか? では、データベースがそれを保存する最良の方法であるように見えるのはなぜですか?

考え?

4

3 に答える 3

9

賢明なデータベース設計者はかつて、「州コードについて知っていることはすべて間違っている」と言いました。

  • これらは 2 文字のコードであり、略語ではありません。(カリフォルニア州の略称は「Calif.」、オハイオ州の略称は「オハイオ」です。)
  • その数は50以上
  • すべての 2 文字のコードが州を参照しているわけではありません。また、「ミクロネシア連邦」や「パラオ」などの「領有」についても言及しています。
  • それらはユニークではありません。1 つの 2 文字コード AE は、4 つの異なる軍事「州」 (Armed Forces Europe、Armed Forces Canada、Armed Forces Middle East、および Armed Forces Africa) を指します。
  • 軍の「州」コードは、軍隊の強さが変化するにつれて変化する可能性があります。数十万の軍隊をアフリカに派遣すると、Armed Forces Africa のコードが「AE」から「AF」に変更される可能性があります。
  • このリストにまだ載っていない地域が十数ほどあります。これらのいくつかは戦略的に重要であり (ウェーク島、ミッドウェイ諸島など)、そのステータスは簡単に変わる可能性があります。

USPS 州コードのような一般的なものについて、これらすべてを知っている可能性は低いため、それらをテーブルに格納する方が理にかなっています。テーブルは、PHP 配列よりも実行時の保守が容易です。

于 2012-09-15T01:56:06.330 に答える
6

データベースはそれを保存するための最良の方法だからです。

来年、あなたの会社が国際化を決定した場合はどうなりますか? したがって、国と、州の従属ドロップダウンが必要になります。

したがって、ヨーロッパを追加し、次にアフリカを追加する必要があります。1 つの大きな配列が必要になります。

次に、上司が国別のレポートを求めています。

すべてをデータベースに格納すると、管理がはるかに簡単になります。

于 2012-09-15T00:01:06.043 に答える