(1)情景再现:
开发一个优惠活动有关的功能。原来系统中优惠活动的类型只有一种,叫优惠券。在此基础上要添加一个新的优惠活动类型,叫优惠套餐。那么就需要在原来存放优惠活动的表中增加一个标志优惠活动类型的参数,用于区分是哪种优惠活动。
如下图所示:
表中新增了一个activity_type字段,用于区分优惠活动类型。
(2)bug:
由于activity_type字段是新加的,所以对于表中原有数据而言,该字段是空值,但是该字段会在代码用到,为空值就会导致bug。
例如在js中:
在js中会用该字段来空值页面的显示效果,如果没activity_type字段就会有bug。
(3)debug
解决这个bug很简单,就是修复历史数据。只用对数据库中历史优惠活动数据的acvtivity_type字段赋值就可以了。
(4)总结
所以以后再遇到在原有功能上进行优化的需求,尤其是在涉及到数据库表结构改动的时候,一定要想一想是否存在历史数据需要修复的问题。