帮朋友做的一个约课系统,后端使用了 typeorm,利用 typeorm 的钩子函数,将每次的数据操作(增、删、改)都再保存到一个 log 表里面。
log 表主要就四个字段:操作用户、操作类型(增、删、改)、原数据(新增的话为空)、修改后的数据(删除的话为空)。
这样以后业务上有什么问题的话,可以查表撕逼。
但感觉这个实现很不优雅,查了一下好像也没有这样的做法。
本人后端小白,请大神指点一下。
1
ech0x 2019-09-27 06:29:23 +08:00 via iPhone
为什么不用 trigger ?
|
2
raynor2011 2019-09-27 07:16:54 +08:00 via Android
一般来说是记用户的行为日志,你这 sql 也体现不了用户的行为啊,可能 sql 本身就是错的
|
3
Lax 2019-09-27 07:21:08 +08:00
用这个不好撕,如楼上说的 sql 本身就是错的。
“明明选了 A 课,怎么变成 B 课了?你看这日志里是 B,也说明你程序给弄错啦!” |
4
tomczhen 2019-09-27 07:24:34 +08:00 via Android
数据库自带 CDC,没有 CDC 就通过 binlog 来做。
|
5
MeteorCat 2019-09-27 08:24:29 +08:00 via Android
没啥问题,不过注意一些敏感数据处理下,比如手机号要改成 1340000****这样,还有密码之类的啥的
|
6
yidinghe 2019-09-27 08:36:06 +08:00 via Android
如果用户做了操作但是没有对应的数据库操作呢,比如用户做了查询但结果是从缓存得到的。
|