美国邮政编码(邮政编码)的 Mysql 数据类型
-
18-09-2019 - |
题
我正在编写一个特定于美国的网络应用程序,因此其他国家/地区使用的邮政编码格式并不重要。我有一个我们邮政编码的列表,我正在尝试将其加载到数据库表中,其中包括
- 5 位美国邮政编码
- 纬度
- 经度
- USPS 分类代码
- 州代码
- 城市
邮政编码是主键,因为它是我要查询的内容。我开始使用中等 int 5,但这会截断具有前导零的邮政编码。
我考虑过使用 char5,但担心对 char 变量进行索引对性能的影响。
所以我的问题是存储邮政编码的最佳 mysql 数据类型是什么?
笔记:我在其他几个与邮政编码相关的问题中看到过它。我只对美国 5 位数邮政编码感兴趣。因此无需考虑其他国家的邮政编码格式。
解决方案
char(5) 是正确的方法。字符串索引非常快,特别是当它是一个很小的数据集时。
您是正确的,您不应该使用整数作为邮政编码,因为它不是真正的数字数据。
编辑添加:查看此内容,了解为什么不使用数字来表示非数字重要数据的充分理由:使用整数列在数据库中存储美国邮政编码是个好主意吗?
其他提示
使用中等 INT(5) ZEROFILL,它应该为您添加前导零。无需因格式问题而影响索引和性能。
如果他将其设为 Char(6),那么他也可以处理加拿大邮政编码。
当您考虑到最多有 100,000 个 5 位邮政编码,并且即使将整个表驻留在内存中,它所占用的空间也很小,那么就没有理由不这样做。
不隶属于 StackOverflow