2011-04-19 51 views
1

我在我的对象中有一个字段,需要固定宽度和数字。它将保存诸如0002,0103或1212的值。目前,我的Java对象将该字段定义为字符串,而数据库(MySQL)是一个整数,填充为4个字符:laborCode int(4) zerofill。我有一些其他表格,这些表格有相同的模式,有些有两个字符,一些有四个。这些表是通过自动编号主键链接到其他表的查找表。固定宽度编号应使用哪种字段类型?

在前端,当用户向表中添加数据时,我有一些预先存在的验证,可以确保用户输入一个数字,因此他们只需输入2,103或1212.当数据被插入,我不必有任何代码留下填充数据,并且选择语句返回填充值。

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

使用一种数据类型来定义字段是否有其他优点/缺点?

回答

1

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

您可以在您的域对象设置器中始终使用NumberFormat,以确保该数字已针对对象好处进行了正确格式化。

+0

我不会担心排序问题,因为业务需要用零填充。即使字符字段也会正确排序。 – xecaps12 2011-04-21 03:46:19