美国邮政的Mysql数据类型(邮政编码)

gsu*_*008 14 mysql sql zipcode database-design data-modeling

我正在编写一个特定于美国的Web应用程序,因此其他国家/地区用于邮政编码的格式并不重要.我有一个美国邮政编码列表,我试图加载到包含的数据库表中

  • 5位数我们的邮政编码
  • 纬度
  • 经度
  • usps分类代码
  • 州代码

邮政编码是主键,因为它是我将要查询的内容.我开始使用medium int 5但是会截断带有前导零的邮政编码.

我考虑使用char5,但我担心索引char变量的性能损失.

所以我的问题是存储邮政编码的最佳mysql数据类型是什么?

注意:我在其他几个与邮政编码有关的问题中都看到过.我只对美国5位数的邮政编码感兴趣.因此,没有必要考虑其他国家的邮政编码格式.

Eri*_*ich 25

char(5)是正确的方法.字符串索引非常快,特别是当它是如此小的数据集时.

你是对的,因为它不是真正的数字数据,你永远不应该使用整数作为邮政编码.

编辑添加:查看这一点有充分理由说明为什么不对非数字重要数据使用数字: 使用整数列将美国邮政编码存储在数据库中是一个好主意吗?

  • 邮政编码不是数字数据.数值数据是对数据操作进行有意义的数据,对于Zip代码,您永远不会这样做.否则,您将不公平地限制数据集.就数据集大小而言,如果Zip代码确实是PK,则只有99,999个值,相对来说是一个非常小的数据集. (2认同)
  • John:不应使用整数,因为邮政编码“00501”将存储为“501”,这可能会产生问题。 (2认同)