那天,数据库评审时,发现一个好现象,我必须得表扬。
我们的礼品系统,礼品单有个是否返回奖券的属性。我看到负责的伙伴定义的字段是
if_return_coupon char(1) comment '是否返回残值:Y-是/N-否'
这有什么值得表扬的呢?
要知道,在我们的系统里,出现了太多的这种在两个数值之间变更的变量,我们程序员都定义成了枚举。 例如,上面的字段,通常会被定义成:
coupon_return_status char(1) comment '残值返回状态:RETURNED-是/UN_RETURNED-否'
对于一个业务复杂、代码量庞大的企业应用,相比来说,哪种更易读?
我们开发团队有一条开发规范:当变量值在有限的范围内变动时,定义成枚举,提高代码可读性。
结果,就出现了各种枚举,包括上面的仅仅在两个值里变更的变量。诸如:开户状态 有个对应的枚举 enum KaiHuStatusEnum{ YiKaiHu, DaiKaiHu} ; 审核状态 有个对应的枚举enum AuditStatusEnum{TO_AUDIT, AUDITED} ; 删除状态 有个对应的枚举enum DeleteStatusEnum{UN_DELETE, DELETED} ;等等等等等等等等等等
枚举是为了提高可读性,如果应用系统里充斥着这样的枚举,反而是一股股的怪味道。