在国内环境下,要求记录用户的行为日志,并且不可删除数据。(在一定期限内要保留)
给所有的表,设计一个 del 字段。
在删除时,实际是 update 表 set `del`=1 where `id`=xxx
还有另外一个作用。比如一个表涉及了多个用户。
用户 a 投递简历 给 商家 b
商家不想看这个简历了,点击”删除“,此时商家看不到。
但用户应该能看到它的投递信息,所以用户仍然可见,这也是 del 字段的好处之一。
另外值得一提,是 logstash ,对 ELK 技术熟悉的,都知道 logstash 在同步数据时,如果删除数据是无法同步删除记录到es的,也就是es中的数据只增不减。这用 del 字段也很符合。
基于此,对用户的所有数据,全部加上 del 字段,非管理员操作均不可删除,在特定情况下,管理员可真正删除数据。
最后,是数据库的定时触发器,比如清除半年、或一年、3年以上的旧数据,按需求进行定时清理。