有关数据表字段的updateTime creatTime的作用

有关数据表字段的updateTime creatTime的作用

由于之一直再写前端的项目业务没有规范过后端你的字段表数据,一直都不太清楚后端数据表creatTimeupdateTime在业务中的实际使用方式。然而在这次的项目实践中这两个字段起到了相当大的作用。

示例

对下表数据是远程数据库信息

idnamedepartmentevaluatecreatTimeupdateTime
1张三信息工程2020-10-01 18:00:002020-10-01 18:00:00
2李四食品卫生2020-10-01 18:00:002020-10-01 18:00:00
………………………………………………………
1000王五动物科学2020-10-01 18:00:002020-10-01 18:00:00

我们有一个业务user表

idnamedepartmentcreatTimeupdateTime
1张三信息工程2020-10-01 18:00:002020-10-01 18:00:00
2李四食品卫生2020-10-01 18:00:002020-10-01 18:00:00
………………………………………………
1000王五动物科学2020-10-01 18:00:002020-10-01 18:00:00

对于远程表我们只有读取权限,并且它的增删改查我们都没有对应的事件去响应它,但是我们需要做到user表和远程业务表的信息同步。我们可以怎么做呢?

1.全表对比

将远程数据库全读,与本地库对比添加修改。这是最稳最简单的方法,如果业务允许甚至可以清空添加。
但是问题也非常明显,这种方式消耗性能数据量大的时候时间长数据更新如果锁定表会影响整个系统等等。
因此引出第二个方法

2. 时间增量法

因为远程和本地都存在creatTimeupdateTime两个字段,完全可以通过查询远程数据库中 updateTime和creatTime处于本地数据库最后的updateTime到当前时间的数据,只用同步这一部分的数据即可。

例如下面逻辑

  • 远程表 origin_user
idnamedepartmentevaluatecreatTimeupdateTime
1张三信息工程2020-10-01 18:00:002020-10-01 18:00:00
2李四食品卫生2020-10-01 18:00:002020-10-01 18:00:00
………………………………………………………
999赵六食品卫生2020-10-01 18:00:002020-10-08 18:00:00
1000王五动物科学2020-10-01 18:00:002020-10-09 18:00:00
  • 业务表target_user(最后更新时间2020-10-01-18:00:00
idnamedepartmentcreatTimeupdateTime
1张三信息工程2020-10-01 18:00:002020-10-01 18:00:00
2李四食品卫生2020-10-01 18:00:002020-10-01 18:00:00
………………………………………………
1000王五动物科学2020-10-01 18:00:002020-10-01 18:00:00
  • 当前时间(2020-10-11 13:20:00
  • sql语句如下:
select * from origin_user where updateTime between `2020-10-01 18:00:00` and `2020-10-11 13:20:00`
# 之后同步即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值