数据库,你存什么?

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


你们存储什么呢?给个理由!
...全文
289 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
玉女 2011-10-08
  • 打赏
  • 举报
回复
没有最好,只有最合适!
always_rick 2011-10-08
  • 打赏
  • 举报
回复
存代码。0 1 2 3 4 5 。。。

理由:
1. 代码不怕变化
2. 中文,日文和英文。。。
3. “程序可读性差,如果你要在service层改变某条数据的状态就会看到 setState(2)这样的代码,如果让别人看,2是什么啊!”
程序是让人用的,让人看的必是懂行的,只要你把comment和documentation写好,不怕让人看不懂。
wolf863292 2011-10-08
  • 打赏
  • 举报
回复
这个不是代码量的问题了。
存代码,维护起来比较正统。
参看4L和10L吧,说的很清楚了。

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

怎么办?直接到数据库中执行SQL?
做成字典项,在系统中做出页面来维护,是不是更好一点?
休谱诺斯 2011-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ajun_studio 的回复:]
关注了,
存代码 ,方便以后修改,还是占用空间小
[/Quote]
恩,便于修改
淡定的峰哥 2011-10-08
  • 打赏
  • 举报
回复
当然是采用存储状态了,与存储状态对应的还有一个字典表,里面包含存储状态、代码类型、中文内容和英文内容(若有需要),系统初始化的时候将字典表的数据以hashmap的形式存放到内存中,key就是存储状态+代码类型,value就是内容的,在视图层就可以根据查出来的存储状态从hashmap中得到内容了
terry21 2011-10-08
  • 打赏
  • 举报
回复
个人觉得量少的话,两个都无所谓,用数字是一个编程习惯,为了更好索引,被其他表当外键使用,存储空间小,易于程序判断比较等。
xiaona1047985204 2011-10-08
  • 打赏
  • 举报
回复
感觉这个看的喜好了 你可以存成1234 这样需要在前端做判断,如果不想的话就存成汉字吧 占用的空间不是很大 无所谓啦
leilei0932_java 2011-10-08
  • 打赏
  • 举报
回复
单一的一个字段,小数据量的程序,是看不出来效率的高低的,如果你的程序中有几十张表的时候,每张表状态的字段都是字符型且数据量非常大的话那就会大大影响程序的效率的,所以推荐使用数字存储.一般情况下使用tinyint就够了,这样比int更能提高效率.
lyhmy 2011-10-08
  • 打赏
  • 举报
回复
普遍采用的都是存储状态吧,很少有存储内容的(应该说到目前为止我还没有看到直接存储内容的)
softroad 2011-10-08
  • 打赏
  • 举报
回复
当然可以使用静态变量,但这种可枚举类型如此之多,如果使用静态变量也会增加代码量
xiaozhuangfeng 2011-10-08
  • 打赏
  • 举报
回复
1、方便索引查找,因为中文容易写错。
2、减少传送数据
飓风zj 2011-10-08
  • 打赏
  • 举报
回复
关注了,
存代码 ,方便以后修改,还是占用空间小
xyz0101123132 2011-10-08
  • 打赏
  • 举报
回复
我是说存那个更好?理由是什么?
随风醉舞 2011-10-08
  • 打赏
  • 举报
回复
如果存状态
可以在 表中 备注
当然也可以存信息!
wei_wxx 2011-10-08
  • 打赏
  • 举报
回复
存储状态才是方便维护~~~~~
kavi 2011-10-08
  • 打赏
  • 举报
回复
原因我觉得如下:一、最重要的,状态表(也就是数据字典): 状态1:草稿,2:已提交,3:已审核,4:已废止 一个表,用到这些状态的数据事另外一张表,内容表:它里面存的是 1或者2或者3或者4,显示的时候关联两个表查询, 这样为了方便维护,假如你要修改“已提交”这个内容成“提交了” 只需要修改 这个 状态表就ok了,其他的不需要管。
二、是一种规范吧
三、也是节约存储空间
ascendlin 2011-10-08
  • 打赏
  • 举报
回复
看项目规范了
jiangdaxian2003 2011-10-08
  • 打赏
  • 举报
回复
定个数据字典比较好

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧