乍一看,在数据库表中存储ZIP codes似乎有两个基本 Select :
- 文本(可能是最常见的),即支持+4扩展名的
char(5)
或varchar(9)
- 数值,即32位整数
如果我们假设没有国际关注,两者都将满足数据要求.在过go ,我们通常只是走文本路由,但我想知道是否有人做了相反的事情?从简单的比较来看,整数方法有两个明显的优势:
- 由于其本质,它自动地仅限于数字(而没有验证的文本样式可以存储字母等,据我所知,这些字母在邮政编码中从来都不是有效的).不过,这doesn't意味着我们可以/愿意/应该放弃正常验证用户输入!
- 它占用的空间更少,只有4个字节(即使对于9位的邮政编码也应该足够了),而不是5或9个字节.
此外,这似乎不会对显示器输出造成太大影响.在数字值上加上ToString()
,使用简单的字符串操作来插入+4扩展名的连字符或空格等,并使用字符串格式化来恢复前导零,这是很简单的.
是否有任何东西会阻止使用int
作为仅限美国邮政编码的数据类型?