为什么字典表?
存在问题:
某些变量在多个地方使用,而且一般是固定的,但是随着系统升级和后期变化,可能需要改变,如果这些变量写死在代码里面将会变得难以维护,所以要将其从代码中抽离出来。
一般的业务系统客户端与用户交互的时候都会使用下拉框组件,对于某些比较固定的值的下拉组件的数据来源一般都是比较固定的一类数值。
如何解决
有的做法是使用枚举或者Constants常量类来实现,这种情况下在量少的前提是没问题的,而且一旦需要修改就及其避免修改源码;随着系统的开发拓展,后期将无法维护,甚至命名困难等问题。
所以通常把字典放在数据库,这样后期的维护变更就比较简单,也可以在不用修改代码的情况下修改配置。还有,对于某些固定的数据字典(例如,星期,月份等)不允许修改。
但是,放在数据库又有着频繁访问数据库的问题,这不是我们希望的,这时候通常做法就是加缓存,降低访问数据库的频率。
字典表的设计:
通常分成两张表来实现,一个是字典类型,一个是字典
字典类型表: SYS_DICT_TYPE
字段名
类型
作用
备注
code
varchar
编码
主键
name
varchar
类型
展示用
字典表 : SYS_DICT
字段名
类型
作用
备注
code
varchar