gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:37:51 24 4
gpt4 key购买 nike

乍一看,我似乎有两个基本的存储选择 ZIP codes在数据库表中:

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

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

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

此外,它似乎不会对显示输出造成太大影响。在数值上添加 ToString(),使用简单的字符串操作插入连字符或空格或 +4 扩展名的任何内容,并使用字符串格式来恢复前导零是微不足道的。

有什么会阻止使用 int 作为仅限美国的邮政编码的数据类型吗?

最佳答案

数字邮政编码在某种程度上具有误导性。

数字应该表示数字。邮政编码不加减也不参与任何数字运算。 12309 - 12345 不计算从斯克内克塔迪市中心到我家附近的距离。

诚然,对于邮政编码,没有人会感到困惑。但是,对于其他类似数字的字段,它可能会造成混淆。

由于邮政编码不是数字——它们只是碰巧用受限的字母编码——我建议避免使用数字字段。 1 字节的节省并没有多大值(value)。而且我认为意义比字节更重要。


编辑

“至于前导零……”是我的观点。数字没有前导零。邮政编码中有意义的前导零的存在再次证明它们不是数字。

关于database - 使用整数列在数据库中存储美国邮政编码是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com