Mysql 美国邮政编码的最佳列类型是什么?
我想在MySQL数据库中存储邮政编码(美国境内)保存空间是优先事项。使用VARCHAR(最大长度限制为6位)或使用INT或使用MEDIUM INT哪个选项更好。邮政编码不会用于任何计算。邮政编码将用于插入(一次)、更新(如果需要)和检索-一次(但可以不止一次)Mysql 美国邮政编码的最佳列类型是什么?,mysql,int,varchar,Mysql,Int,Varchar,我想在MySQL数据库中存储邮政编码(美国境内)保存空间是优先事项。使用VARCHAR(最大长度限制为6位)或使用INT或使用MEDIUM INT哪个选项更好。邮政编码不会用于任何计算。邮政编码将用于插入(一次)、更新(如果需要)和检索-一次(但可以不止一次) 在MYSQL中使用VARCHAR、INT或MEDIUM哪个更好?请提供其他建议?将邮政编码存储为数字值存在一些问题 邮政编码有扩展名,这意味着它们可以是12345-6789。不能在数字数据类型中存储破折号 有许多邮政编码以零开头,如果将其
在MYSQL中使用VARCHAR、INT或MEDIUM哪个更好?请提供其他建议?将邮政编码存储为数字值存在一些问题
12345-6789
。不能在数字数据类型中存储破折号varchar(5)
或varchar(10)
作为旁注,我不知道您为什么会选择
varchar(6)
,当标准邮政编码为5或10并带有分机时,您有理由选择不寻常的长度吗?我通常使用MEDIUMINT(5)ZEROFILL
来表示5位邮政编码。这将保留任何前导的0
s,并且它只使用3个字节,而VARCHAR(5)
将使用6个字节。这假设您不需要扩展的邮政编码,它有一个破折号和4个额外的数字。如果您决定使用文本类型,我将使用CHAR(5)
而不是VARCHAR(5)
,因为如果数据总是5个字符长会更好。邮政编码总是5个字符,因此您需要CHAR数据类型,而不是VARCHAR
因此,你的选择是正确的
CHAR(5)
MEDIUMINT (5) UNSIGNED ZEROFILL
第一个是每个邮政编码5个字节
第二种方法每个邮政编码只需要3个字节。零填充选项对于带前导零的邮政编码是必需的
因此,如果您优先使用空格,请使用MEDIUMINT。我建议使用VARCHAR数据类型,因为在某些国家,邮政编码用作字母数字,而在其他地方用作整数。因此,我们不能将整数用于全局。此外,邮政编码可能以零开头,如
001101
,因此在这种情况下,如果我们采用数据类型integer,则前导零将丢失,因此我们无法传递实际的邮政编码 可能重复的美国邮政编码可以包含9位数字和一个连字符,而不仅仅是5位数字。如果假定邮政编码的长度,则必须准备在邮政编码发生变化时更改列类型。