+ -
当前位置:首页 → 问答吧 → 数据库,你存什么?

数据库,你存什么?

时间:2011-10-08

来源:互联网

开发中我们会遇到各种可枚举的类型。比如我们在设计开发中有个属性——状态,他可取的值有草稿,已提交,已审核,已废止等状态。我们为这些状态指定了相应的代码如 1:草稿,2:已提交,3:已审核,4:已废止 ,而在数据库中存储的则是 1234这些代码。然后在jsp页面去翻译这些代码。可是为什么不直接存储内容呢?这样就可以免去翻译的代码。
我觉得因该直接存储内容理由如下:
1、可能有些人觉得存储 1234这些代码,可以提高数据库的效率,这个我没有深入研究。但觉得这种内容仅比这些代码多1-5个字符。性能应该影响不大。所以这不是使用代码存储的主要理由。
2、省去翻译的代码量。
3、程序可读性差,如果你要在service层改变某条数据的状态就会看到 setState(2)这样的代码,如果让别人看,2是什么啊!
(当然可以使用静态变量,但这种可枚举类型如此之多,如果使用静态变量也会增加代码量)


你们存储什么呢?给个理由!

作者: gudong2945   发布时间: 2011-10-08

如果存状态
可以在 表中 备注
当然也可以存信息!

作者: yanjinye   发布时间: 2011-10-08

我是说存那个更好?理由是什么?

作者: gudong2945   发布时间: 2011-10-08

关注了,
存代码 ,方便以后修改,还是占用空间小

作者: ajun_studio   发布时间: 2011-10-08

1、方便索引查找,因为中文容易写错。
2、减少传送数据

作者: xiaozhuangfeng   发布时间: 2011-10-08

当然可以使用静态变量,但这种可枚举类型如此之多,如果使用静态变量也会增加代码量

作者: softroad   发布时间: 2011-10-08

普遍采用的都是存储状态吧,很少有存储内容的(应该说到目前为止我还没有看到直接存储内容的)

作者: lyhmy   发布时间: 2011-10-08

单一的一个字段,小数据量的程序,是看不出来效率的高低的,如果你的程序中有几十张表的时候,每张表状态的字段都是字符型且数据量非常大的话那就会大大影响程序的效率的,所以推荐使用数字存储.一般情况下使用tinyint就够了,这样比int更能提高效率.

作者: leilei0932_java   发布时间: 2011-10-08

感觉这个看的喜好了 你可以存成1234 这样需要在前端做判断,如果不想的话就存成汉字吧 占用的空间不是很大 无所谓啦

作者: xiaona1047985204   发布时间: 2011-10-08

个人觉得量少的话,两个都无所谓,用数字是一个编程习惯,为了更好索引,被其他表当外键使用,存储空间小,易于程序判断比较等。

作者: terry21   发布时间: 2011-10-08

当然是采用存储状态了,与存储状态对应的还有一个字典表,里面包含存储状态、代码类型、中文内容和英文内容(若有需要),系统初始化的时候将字典表的数据以hashmap的形式存放到内存中,key就是存储状态+代码类型,value就是内容的,在视图层就可以根据查出来的存储状态从hashmap中得到内容了

作者: wangxf_8341   发布时间: 2011-10-08

引用 3 楼 ajun_studio 的回复:
关注了,
存代码 ,方便以后修改,还是占用空间小

恩,便于修改

作者: feng3773216   发布时间: 2011-10-08

这个不是代码量的问题了。
存代码,维护起来比较正统。
参看4L和10L吧,说的很清楚了。

1:草稿,2:已提交,3:已审核,4:已废止
如果要求改为
1:草稿,2:已完成,3:已批阅,4:已删除

怎么办?直接到数据库中执行SQL?
做成字典项,在系统中做出页面来维护,是不是更好一点?

作者: wolf863292   发布时间: 2011-10-08

存代码。0 1 2 3 4 5 。。。

理由:
1. 代码不怕变化
2. 中文,日文和英文。。。
3. “程序可读性差,如果你要在service层改变某条数据的状态就会看到 setState(2)这样的代码,如果让别人看,2是什么啊!”
程序是让人用的,让人看的必是懂行的,只要你把comment和documentation写好,不怕让人看不懂。

作者: always_rick   发布时间: 2011-10-08

没有最好,只有最合适!

作者: tang5324110   发布时间: 2011-10-08