我应该将US States存储在我的数据库还是PHP数组中?

Jac*_*aug 10 php mysql database arrays

我该如何储存国家和国家?

选项1)我可以创建一个名为states的数据库表,并具有'id','state'和'state_abbr'.然后我可以通过users表中的'id'来引用它.

选项2)我可以创建一个PHP数组并使用它来填充状态下拉菜单,并避免完全查询数据库.数组的键是为该用户插入数据库中的值.

国家不会改变,因此数据应该是静态的.存储此信息的最佳方法是什么?为什么?PHP数组不会更快吗?为什么数据库似乎是存储它的最佳方式?

思考?

Mik*_*ll' 9

一位聪明的数据库设计师曾告诉我,"你所知道的关于州代码的一切都是错误的."

  • 这些是双字母代码,而不是缩写.(加利福尼亚州的缩写是"Calif.",俄亥俄州的缩写是"俄亥俄州".)
  • 其中有50多个.
  • 并非所有双字母代码都指状态.他们还提到像"密克罗尼西亚联邦"和"帕劳"这样的"财产".
  • 它们不是唯一的.一个双字母代码,AE,指的是四个不同的军事"国家"(欧洲武装部队,加拿大武装部队,中东武装部队和非洲武装部队).
  • 随着部队兵力的变化,军事"国家"代码可能会发生变化.派遣数十万军队进入非洲,你可能会看到武装部队非洲的代码从"AE"变为"AF".
  • 这个列表中还有十几个区域.其中一些具有战略意义(威克岛,中途岛等),其地位可能很容易改变.

鉴于你不太可能知道关于USPS状态代码这样常见的所有这些事情,将它们存储在表格中更有意义.表在运行时比PHP数组更容易维护.


Kri*_*ris 6

因为数据库是存储它的最佳方式.

如果你的公司明年决定走向国际会怎么样?所以现在你需要国家和国家的依赖下拉.

因此,您需要添加欧洲,然后是非洲.这是一个国家的TON,以及大量的州.你需要一个大阵列.

那么你的老板想要按国家报告.

如果您在数据库中拥有所有内容,则更容易管理.