数据库设计中关于[字典表]的使用
今天偶然听到[字典表]一词。
原来所谓的[字典表]就是诸如菜单、省份、城市、民族、星座等等一些不常改动的键值对。
那么既然它的实际作用只是用来表示“值”的,为什么还要特意做成一个表,其他的表如果需要这个值,还要关联它的“键\ID”?
比如,一张员工表,里面有个职位的字段,为什么不直接录入“经理”、“总监”等等。
这样做的目的是为了便于维护和扩展。假如以后这个部门没有“经理”这个称谓,改叫“部门长”了。比起一条条的将“经理”改成“部门长”,不如直接将职位分离出一张表。相应的存入键即可
有变化时,将键所对应的值改为新值。便于维护。
既然叫[字典],那么这个表就要稳定,即不能经常改动。今天"anyway"这个单词在150页,明天在第63页,谁都不好找。
那么既然稳定,它的值不常改变。那么出于性能考虑,节省数据库资源开销,通常情况下,可以将其缓存起来。
也可以设置过期时间,定时更新。
这里有一篇文章http://www.blogjava.net/martinx/archive/2006/06/11/16969.html