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

选项1)我可以创建一个称为状态的数据库表,并具有“id”,“state”和“state_abbr”。然后,我可以在用户表中通过“id”来引用它。

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

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

有什么想法吗?

最佳答案

一位明智的数据库设计师曾经告诉我:“您所知的关于状态码的一切都是错误的。”

  • 这是两个字母的代码,而不是缩写。 (The abbreviation for California是“Calif。”,俄亥俄州的缩写是“Ohio”。)
  • There are more than 50 of them
  • 并非所有的两个字母的代码都引用状态。他们还提到“拥有”,例如“密克罗尼西亚联邦”和“帕劳”。
  • 它们不是唯一的。一个由两个字母组成的代码AE涉及四个不同的军事“州”(欧洲武装部队,加拿大武装部队,中东武装部队和非洲武装部队)。
  • 军事“州”代码可能随部队实力的变化而变化。向非洲 dispatch 数十万部队,您很可能会看到非洲武装部队的代码从“AE”更改为“AF”。
  • 该列表中还没有十几个地区。其中一些具有战略意义(威克岛,中途岛等),其地位很容易改变。

  • 鉴于您不太可能了解诸如USPS状态码之类的常见信息,将它们存储在表中更有意义。与PHP数组相比,表在运行时更易于维护。

    07-26 08:10
    查看更多