首先先说明两个概念代码字段和代码表。代码字段是指需要限定取值范围的字段。代码表指的是那一类用来记录代码字段取值范围的表。代码字段和代码表几乎在我们开发的每个业务系统中都存在。从我自身经历过的一些项目来看,一般的设计方式有三种:
(1)不使用代码表的常量定义方式,由程序来直接指定某个代码字段的分配,比如性别有男和女这两种取值,那么就定义女为0,男为1,这样在建表时就在注释处做好说明,这样程序员在开发时就按照这个约定进行开发。个人觉得这种方式比较适用于那些变化可能性比较小或者是几乎不会有变化的代码字段。由编程语言来指定代码的显示名称,这样的好处是可以少建相应的代码表。缺点是代码字段缺少数据库级的完整性约束。
(2)每个代码字段一个代码表的方式,适用于代码字段取值范围不确定需要动态维护的场合。缺点是会导致表的数量增多。
(3)统一设置代码表的方式,即建立两张表,一个代码类别表,一个代码值表,对所有的代码进行统一管理。这样即可以做到对代码的动态维护同时也控制了表的数量。但也存在的缺点是由于所有的代码字段的值是在一个表中,这样代码字段的数据库级的完整性约束并不能做到十分精确。
从个人观点看,目前倾向于采用3这种方式,现在相关的表结构列在如下:
代码类别表
代码值表
以下是用JAVA设计的一些类,提供给各个业务模块一个统一获取代码的一个公共接口,想达到如下目的:
(1)