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

2024-01-07

乍一看,我似乎有两种基本的存储选择邮政编码 http://en.wikipedia.org/wiki/ZIP_code在数据库表中:

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

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

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

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

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


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

数字应该有意义numeric。邮政编码不进行加减或参与任何数字运算。 12309 - 12345 不会计算从斯克内克塔迪市中心到我家附近的距离。

诚然,对于邮政编码,没有人会感到困惑。然而,对于其他类似数字的字段,它可能会令人困惑。

由于邮政编码不是数字(它们只是碰巧使用受限字母进行编码),因此我建议避免使用数字字段。节省一个字节并没有多大价值,我认为meaning比字节更重要。


Edit.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用整数列在数据库中存储美国邮政编码是个好主意吗? 的相关文章

  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 数据加密

    存储大量信用卡信息的数据库是我们刚刚完成的系统中不可避免的一部分 不过 我想要的是卡号的最终安全性 我们可以设置一种加密和解密机制 但我们自己无法解密任何给定的号码 我所追求的是一种即使在数据库级别也能保护这些信息的方法 这样任何人都无法进
  • 如何考虑子类型的多态性

    里氏替换原则指出 超类型的不变量必须保留在子类型中 我对这个原理和多态性的交叉特别感兴趣 事实上 特别是子类型多态性 参数多态性和 Haskell 类型类似乎就是这种情况 因此 我知道当函数的参数是逆变且返回类型是协变时 函数是子类型 我们
  • 要做或不做:将图像存储在数据库中[重复]

    这个问题在这里已经有答案了 在 Web 应用程序的上下文中 我的前老板总是说在数据库中放置对图像的引用 而不是图像本身 我倾向于同意在数据库中存储 url 与图像本身是一个好主意 但在我现在工作的地方 我们在数据库中存储大量图像 我能想到的
  • VB.NET 中的类型比较

    如何比较 VB NET 中的类型数据类型 我的代码 Private Function Equal ByVal parameter As String ByVal paramenterName As String ByVal dataType
  • MongoDB 支持浮点类型吗?

    我正在将 mysql 数据库迁移到 mongodb 但我读过 MongoDb 数据类型 然后没有引用浮点类型 如 float double decimal 我如何在 mysql 模式中拥有一些带有十进制类型的字段 我该怎么做或我能做什么 M
  • 如何按关系的数量或成员对 Doctrine DQL 查询进行排序?

    我正在尝试创建一个查询 用于从 Doctrine 数据库中检索对象 并按特定一对多关系的成员数量排序 更具体地说 我有两个实体 Person 和 Federation 一个人可以是一个联盟的成员 人具有 联盟 关系 并且一个联盟可以有n人
  • “结构类型防护”与“if”配合使用,但不能用作数组过滤谓词

    我有一个联合类型 Pet在下面的示例中 组合了多个对象类型 每个对象类型都有一个type指示其类型的属性 有时我有一个联合类型的数组 Pet 并且需要 filter 它基于type财产 这本身工作得很好 但为了避免多余的类型声明 我想确保
  • 如何在 Sequelize 现有模型中添加列?

    我使用此命令添加了模型和迁移文件 node modules bin sequelize model generate name User attributes firstName string lastName string email s
  • 引用Scala中内部类的类型

    下面的代码尝试模仿DSL 的多态嵌入 http www daimi au dk ko papers gpce50 hofer pdf 而不是给出行为Inner 它被编码在useInner其封闭类的方法 我添加了enclosing方法 以便用
  • 无法将 CLOB 数据存储到 DB2 中的 CLOB 定义的列中

    我猜这是一个重复的问题 但尚未找到合适的解决方案 基本上 我试图通过以下方式将大一点的 XML 即 32000 个字符 插入到 CLOB 列中 DB2程序 插入失败并出现以下错误 看起来 DB2 正在将输入视为 String 而不是 CLO
  • 将自动递增值添加到只有一列的表中

    我需要创建一个基本上仅保留索引列表的表 因此 我创建了一个只有一个名为 id 的自动递增列的表 但是 我似乎无法隐式地将自动递增值添加到该表中 我知道通常当您在表中有这样一列 不仅仅是此列 时 您可以执行以下操作 插入表 col1 col2
  • int(int)& 或 int(int) const & 是什么类型?

    std is function专门用于具有类似于以下签名的类型 int int 看这里 std is function http en cppreference com w cpp types is function 但这既不是指向成员方法
  • 如何删除MySQL中的所有事件

    如果我想删除某个事件 我需要查询类似的内容 DROP EVENT IF EXISTS eventname 但我找不到一次性删除所有事件的命令 必须一项一项地删除 有没有一次性删除所有事件的SQL DROP EVENT IF EXISTS S
  • 稀有对象的 python 类型注释,例如 psycopg2 对象

    我了解内置类型 但是我如何指定稀有对象 例如数据库连接对象 def get connection and cursor gt tuple psycopg2 extensions cursor psycopg2 extensions conn
  • 使用包含 [模板]、[编码]、[所有者] 的批处理文件和 .sql 文件创建 Postgres 数据库

    我想使用批处理文件创建 Postgres 数据库 现在执行此操作的正常方法如下 C Program Files PostgreSQL 9 0 bin createdb exe U Myadmin MydatAbseName 上面的脚本使用默
  • 如何使用 aerospike 加载器在 aerospike 中加载嵌套的 csv 文件?

    我已将 JSON 文件转换为 CSV 格式 现在使用 aerospike 加载器将 CSV 加载到 Aerospike 中 我可以为简单的结构执行此操作 但如何修改 allDatatype json 的内容以在 Aerospike 中加载嵌

随机推荐

  • Key存在时出现KeyError

    使用 python 和 twitter api 获取 tweet 对象 我有一个包含推文的文件 tweetfile 我的计算机上的 txt 文件 我试图循环遍历对象以获取文本 我使用 tweetObj keys 检查了 twitter 对象
  • 使用nodemailer发送电子邮件

    我正在尝试使用 nodemailer 从我的应用程序发送电子邮件 我的设置如下 var nodemailer require nodemailer var smtpTransport require nodemailer smtp tran
  • 无法通过 ADB 连接到我的 Android 设备

    抱歉问了这个菜鸟问题 我在使用网络解决这个问题时遇到了麻烦 我试图通过 adb 将我的设备连接到我的电脑来调试我的应用程序 我的设备已植根 Adb 调试已启用 我下载了一个 adb 运行应用程序并启动了 ADB 现在我正在尝试 adb co
  • sched_getcpu() 相当于 OS X 吗?

    在 OS X 上 有没有办法找出线程正在哪个 CPU 上运行 Linux 的等效函数是调度获取CPU http man7 org linux man pages man3 sched getcpu 3 html 获取当前处理器编号 http
  • 缓冲输入如何工作

    下一个程序中的输入 使用 DOS BufferedInput 函数 0Ah 工作正常 但是当我要求显示输出时 DOS 根本不显示任何内容 这怎么可能 ORG 256 mov dx msg1 mov ah 09h DOS WriteStrin
  • zsh:权限被拒绝:gam

    我在安装了 Oh My ZSH 的 macOS 10 12 上使用 ZSH 我最近安装了GAM https github com jay0lee GAM在我的计算机上使用提供的安装脚本bash lt curl s S L https git
  • glVertexAttribPointer 引发不可能的 GL_INVALID_OPERATION?

    我已将错误范围缩小到此 OpenGL 调用 glVertexAttribPointer var vertex 4 GL FLOAT GL FALSE 0 0 前面没有错误 并且有一个GL INVALID OPERATION之后出现错误 我的
  • CSS如何正确使用em代替像素?

    我想尝试将我的设计从像素转换为 em 我已经阅读了很多教程 我将把它留在那里 以此为基础开始 body font size 62 5 line height 1 4 现在这就是我迷路的地方 我应该定义我的font size像这样 div w
  • 使用 iframe 时更改地址栏

    有没有一种方法可以使用 iframe 但在单击 iframe 内的内容时仍然可以将地址栏更改为页面的实际内容 我想在页面顶部有一个带有音乐播放器的水平栏 允许在浏览网站时播放音乐 但我也希望人们能够轻松地为这些页面添加书签 我已经搜索过 但
  • Visual Studio 2013远程调试,自动部署?

    当我尝试使用 Windows 应用商店应用程序 Metro 应用程序 进行远程调试时 非常简单 在 开始 下拉列表中 我可以选择一台远程计算机 然后VS构建项目并自动将可执行文件部署到远程计算机并运行它 感觉就像是本地调试一样 现在我想尝试
  • 为什么没有 lubridate:::update 函数?

    正如标题所说 为什么没有这个功能呢 或者以不同的方式 函数的类型是什么 当我打字时 update我从那里得到一些东西stats包 但有一个 lubridate 函数 如上所述第 7 页 似乎还有一个lubridate update Date
  • 拯救 ActionController::UnknownFormat 免于引发异常

    我正在努力做到这一点ActionController UnknownFormat不会在生产中引发异常报告 我正在使用 Rails 4 并认为这样的东西可以解决问题 但它似乎没有什么区别 应用程序 rb config action dispa
  • Codeigniter 无法使用 join 方法从数据库表中删除行

    我想从 table1 中删除 user id 5 的那些行 但我应该检查这些帖子是否 table2 中的 title title1 我使用 Codeigniter 在尝试删除时收到此错误 除非包含 where 或 like 子句 否则不允许
  • PHPExcel 在 AWS 上运行代码时写入垃圾字符。

    我面临 PHPExcel excel 下载代码的问题 下载代码在一台服务器 netcore 服务器 上运行 但同一组代码在 AWS 服务器上不起作用 任何人都可以帮助我找出确切的问题是什么 以下是phpexcel下载代码 error rep
  • 关闭 tomcat 服务器时无法加载 org.apache.hadoop.util.ShutdownHookManager

    我有一个在 tomcat 上运行的简单 Web 应用程序 该 Web 应用程序读取文件并将其写入 HDFS 我面临的问题是每次我使用以下命令停止服务器时 bin shutdown sh 我收到无法加载 hadoop shutdownHook
  • Resharper 智能感知不适用于 XAML

    Resharper 智能感知在 XAML 中似乎不适用于我 我的 Xaml 看起来像
  • 复制 Google Sheets 中的模板并自动授权脚本

    我见过类似的问题 但没有一个有 A 我可以使用的答案或 B 相同的目标 开始 我有一个 Google 表格模板 称之为 处理 并绑定了一个脚本 当另一个脚本运行 copyTemplate gs 时 它会根据唯一的 ID 号创建一个新的处理副
  • localStorage 按值排序

    我已将一些数据放入 localStorage 并且我想检索数组中的键名 并按值排序 法国 0意大利 1英格兰 2德国 3 etc function getCountries use strict var returnArray for va
  • ADO.NET:为所有 VarChar 参数的 SqlParameter.Size 指定 -1 是否安全?

    我们有一个现有的 C 代码体 可以在许多地方调用参数化的即席 SQL Server 查询 我们从不指定 SqlParameter Size 并且有记录表明 在这种情况下 SqlParameter 类从参数值推断大小 我们最近才意识到由此产生
  • 使用整数列在数据库中存储美国邮政编码是个好主意吗?

    乍一看 我似乎有两种基本的存储选择邮政编码 http en wikipedia org wiki ZIP code在数据库表中 文本 可能是最常见的 即char 5 or varchar 9 支持 4扩展 数字 即 32 位整数 如果我们假