【问题标题】:What field type should I use for fixed width number?我应该为固定宽度数字使用什么字段类型?
【发布时间】:2011-04-19 03:09:42
【问题描述】:

我的对象中有一个字段需要固定宽度并且只能是数字。它将保存诸如 0002、0103 或 1212 之类的值。目前,我的 Java 对象将此字段定义为字符串,而数据库 (MySQL) 是一个整数,填充为 4 个字符:laborCode int(4) zerofill。我还有其他几个具有相同模式的表格,有些有两个字符,有些有四个。这些表是通过自动编号主键链接到其他表的查找表。

在前端,当用户向表中添加数据时,我有一些预先存在的验证,确保用户输入一个数字,所以他们只需要输入 2、103 或 1212。​​当数据是插入后,我不需要任何代码来填充数据并且选择语句返回填充的值。

创建表格后,我开始想也许我应该将字段定义为字符:laborCode char(4)。如果我以这种方式定义它,我需要正确格式化数据,这应该很容易使用对象的 setter 方法。这种方式对我来说似乎更正确,我的 java 对象中的字符串值映射到数据库中的字符串值。

用一种数据类型定义字段相对于另一种数据类型有什么优点/缺点吗?

【问题讨论】:

    标签: java mysql


    【解决方案1】:

    就个人而言,我喜欢将数字作为数字留在数据库中。您可以轻松地对它们进行排序/执行其他数字操作。此外,永远不会意外插入字母。

    您始终可以在域对象设置器中使用 NumberFormat 来确保数字格式正确,以便对象受益。

    【讨论】:

    • 我不担心排序,因为企业希望它用零填充。甚至 char 字段也会正确排序。
    猜你喜欢
    • 2020-04-15
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    相关资源
    最近更新 更多