每个表的update_time,一般代表的是这条数据本身的修改时间。但是update_time其实在很多场景下有特殊的用法,在这里结合多年的业务和经验,介绍几种常见的关于UPDATE_TIME的设计 。
(1)数据在复制环境中的时间:REP_TIME
在现在的互联网产品中,往往不止一个数据库。某个数据库会在多个机房有备份,或者同一个机房有多个备份。实现这种主从复制的技术有很多,有些技术往往需要解决复制环境中数据冲突的问题。此时数据变动的时间就是解决冲突的常见手法。这个数据变动的时间,和业务无关,只要数据实际情况发生了一次UPDATE修改,那么这个时间就需要变动。无论这个修改是有实际意义的,还是说某个开发就是做了一次无效的UPDATE操作。
在ORACLE数据库中,这个字段一般使用TIMESTAMP类型,保证这个修改时间是通过触发器来实现的,也就是只要发生UPDATE修改,这个时间会通过触发器修改,无需程序管理。
所以,在复制环境中, 参与复制所有的表都需要有这个REP_TIME的字段,以及维护这个字段的触发器。虽然这个字段可以代表数据的修改时间,但是通常这个字段和业务的紧密度不相关,仅仅表现的数据修改本身的时间。