,你没法再通过select语句查出来,而这个做法,就叫硬删除
回到刚刚那个的逻辑,假设有一个商品表,订单表,订单表关联了商品id
这个时候,需要删除这个商品,如果直接数据库删除的话,将导致订单表查不出商品信息...,这个时候
我们可以给商品表增加一个 删除标记 isDelete 删除商品数据时,不去执行delete,而是去执行update:
update goods_list set isDelete=1 where...所有表都可以加软删除,但是有些表增加软删除并没有意义
只有一些重要数据表,关联表相关才有必要增加软删除功能
例如在商城项目中,
刚刚所说的商品删除,需要拥有关联订单表
用户端删除订单之后,为了做用户数画像...,可以做成软删除方便分析数据
用户修改头像之后,也可以保留旧头像做数据分析
日志过期删除之后,没有查看的意义
商城首页的菜单栏删除了,没有恢复的意义
商品分类删除了,完全可以重新增加一个一模一样的,没有恢复的意义...例如刚刚的订单表商品关联的
如果要业务实现完善,理应做订单商品快照,也就是每次下单,都会将商品表的商品数据全部复制一份,关联上订单
这样商品数据真删除了,或者商品修改了信息,订单表也能看到那时候下单时的商品数据