【发布时间】:2011-02-01 13:59:45
【问题描述】:
所以这更像是一个关于 MySQL 数据类型的一般性问题。在此示例中,我想正确存储 5 位美国邮政编码 (zip_code)。
一个县有 10 个不同的城市和 5 个不同的邮政编码。
city | zip code
-------+----------
city 0 | 33333
city 1 | 11111
city 2 | 22222
city 3 | 33333
city 4 | 44444
city 5 | 55555
city 6 | 33333
city 7 | 33333
city 8 | 44444
city 9 | 22222
我通常会将这样的表构造为 varchar(50), int(5) 而不会三思而后行。
(1) 如果我们想确保这个表只有 5 个不同的邮政编码之一,我们应该使用 enum 数据类型,对吗?
现在想一个更大范围的类似场景。在一个州,有 500 个城市,有 418 个不同的邮政编码。
(2) 我应该将 418 邮政编码存储为 enum 数据类型还是 int 并创建另一个表以供参考?
【问题讨论】:
-
除了已接受的答案:INT(5) 还存储普通 INT。这里解释stackoverflow.com/a/14491272/857958
标签: mysql types enums int sqldatatypes