问题描述
大家好,我的问题是这样:教师信息表中有“岗位级别”这个字段,岗位范围有科研、教辅、教学等,每个类别都有级别,所以字段的取值范围就有科研一级、教辅一级、教辅二级等等。需求是这个字段要存代码,比如0,1,2,3对应不同的真实名称。其实这个问题还有典型的字段性别(男女、male female)等。需求是好的,为了可维护性更高。因为假如要改名字了,不可能逐条更新记录。但是问题就来了,代码与真实名称的对应关系是存储在数据库一张表中还是文件中。在我们的项目中,这样的字段有很多!就称之为状态字段。我用的hibernate,我的觉得存储在数据库,不论编码和性能都不太好吧?所以我考虑用文件xml或者properties。先说xml,如果比较简单点,我会在实体类的getter方法中处理转化。比如性别1-男,0-女:public String getGender() { return this.gender ? "男" : "女";}但是如果类型稍多,比如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;}再多我就会把这种对应关系存储在xml中,用dom4j来解析,依然是在getter方法里。请问大家这样好不好?再说properties文件,把代码与真实名字的对应关系存在properties文件,这样转化问题就在表示层解决,而且性能比xml好。还能做I18N,我准备两套资源文件就行了,而且需求中也有英文版网站。(顺便问下,key值能为中文吗?)请大家看看三个方法哪种好?或者有什么其他解决办法?谢谢啦
解决方案
我倾向于properties文件,key值可以用中文,一样是字符串,但是要注意编码问题。