代码之家  ›  专栏  ›  技术社区  ›  gsueagle2008

美国邮政编码的mysql数据类型

  •  14
  • gsueagle2008  · 技术社区  · 15 年前

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

    • 5位美国邮政编码
    • 纬度
    • 经度
    • USPS分类代码
    • 国家代码
    • 城市

    邮政编码是主键,因为它是我要查询的对象。我开始使用一个中等整数5,但它会截断前导零的邮政编码。

    我考虑过使用char5,但担心索引对char变量的性能影响。

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

    注意:我在其他几个与邮政编码相关的问题中也看到过。我只对我们5位数的邮政编码感兴趣。所以不需要考虑其他国家的邮政编码格式。

    3 回复  |  直到 8 年前
        1
  •  24
  •   Community Mr_and_Mrs_D    7 年前

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

    正确的做法是,不应使用整数作为邮政编码,因为它不是真正的数字数据。

    编辑添加: 请检查这一点,了解为什么不将数字用于非数字重要数据的原因: Is it a good idea to use an integer column for storing US ZIP codes in a database?

        2
  •  2
  •   KM.    15 年前

    使用中等整数(5)零填充,它应该为您添加前导零。不需要在格式化问题上影响索引和性能。

        3
  •  1
  •   David    15 年前

    如果他把它设为字符(6),那么他也可以处理加拿大的邮政编码。

    当您考虑到最多有100000个5位数的邮政编码,并且即使您使整个表内存驻留在其中,它所占用的空间也很小时,没有理由不这样做。