whforit 2012-12-20 20:29
浏览 218
已采纳

code与名字的关系,数据库状态字段的显示、存储问题

大家好,我的问题是这样:
教师信息表中有“岗位级别”这个字段,岗位范围有科研、教辅、教学等,每个类别都有级别,所以字段的取值范围就有科研一级、教辅一级、教辅二级等等。需求是这个字段要存代码,比如0,1,2,3对应不同的真实名称。其实这个问题还有典型的字段性别(男女、male female)等。

需求是好的,为了可维护性更高。因为假如要改名字了,不可能逐条更新记录。
但是问题就来了,代码与真实名称的对应关系是存储在数据库一张表中还是文件中。在我们的项目中,这样的字段有很多!就称之为状态字段。

我用的hibernate,我的觉得存储在数据库,不论编码和性能都不太好吧?

所以我考虑用文件xml或者properties。

先说xml,如果比较简单点,我会在实体类的getter方法中处理转化。比如性别1-男,0-女:
[code="java"]
public String getGender() {
return this.gender ? "男" : "女";
}
[/code]
但是如果类型稍多,比如
[code="java"]
public String getType() {
String typeStr = null;
switch(type){
case 0:typeStr="学院新闻";break;
case 1:typeStr="教务信息";break;
case 2:typeStr="学术信息";break;
case 3:typeStr="就业信息";break;
}
return typeStr;
}
[/code]
再多我就会把这种对应关系存储在xml中,用dom4j来解析,依然是在getter方法里。请问大家这样好不好?

再说properties文件,把代码与真实名字的对应关系存在properties文件,这样转化问题就在表示层解决,而且性能比xml好。还能做I18N,我准备两套资源文件就行了,而且需求中也有英文版网站。(顺便问下,key值能为中文吗?)

请大家看看三个方法哪种好?或者有什么其他解决办法?谢谢啦

  • 写回答

1条回答 默认 最新

  • _1_1_7_ 2012-12-21 08:49
    关注

    我倾向于properties文件,key值可以用中文,一样是字符串,但是要注意编码问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器