相关疑难解决方法(0)

使用整数列将美国邮政编码存储在数据库中是一个好主意吗?

乍一看,我认为在数据库表中存储邮政编码有两个基本选择:

  1. 文本(可能是最常见的),即char(5)varchar(9)支持+4扩展
  2. 数字,即32位整数

如果我们假设没有国际问题,两者都将满足数据的要求.在过去,我们通常只是走了文本路线,但我想知道是否有人做相反的事情?只是简单的比较看起来整数方法有两个明显的优点:

  • 通过它的性质,它仅仅自动限于数字(而没有验证,文本样式可以存储字母,据我所知,这些字母在邮政编码中无效).这并不意味着我们可以/将/应该放弃正常验证用户输入!
  • 它占用的空间更少,为4个字节(即使对于9位邮政编码也应该足够),而不是5或9个字节.

而且,它似乎不会对显示输出造成太大影响.打一个ToString()数值,使用简单的字符串操作来插入连字符或空格或其他任何+4扩展名都是微不足道的,并使用字符串格式来恢复前导零.

是否有什么可以阻止使用int仅限美国邮政编码的数据类型?

database database-design types postal-code street-address

51
推荐指数
6
解决办法
4万
查看次数

数据库中的电话号码列

在我工作的最后3家公司中,电话号码列的类型为varchar(n).原因是他们可能想要存储扩展(分机333).但在每种情况下,插入和更新时都会删除" - "字符.我不明白为什么".ext"字符可以存储而不是" - "字符.有没有其他人看过这个,你能用这种方式做什么解释?如果你要存储的只是数字,那么你最好不要使用int字段吗?相反,如果您想将数字存储为字符串/ varchar,那么为什么不保留所有字符而不打扰显示格式和写入时清除?

我也有兴趣了解其他地方实施电话号码存储的其他方式.

database phone-number

19
推荐指数
2
解决办法
2万
查看次数