数据库设计之物理删除与逻辑删除

发布时间 2023-04-23 16:59:28作者: super超人

物理删除存在的问题:

假如A关联了B,如果物理删除了表记录B,那么A关联B的就会查询不到B的信息了。

比如之前查询A详情能查询到关联的B的数据,有一天B删除了,A再次查询详情查询不到关联的B的数据了。

思考及总结:

1.要么像hibernate那样,作为外键且被关联的有记录的,校验不让删除B。(感觉业务要判断好多表,也不知道哪个表关联了B。)
2.要么B物理删除再加一个历史表。(几乎每个表都会多出一个历史记录表)
3.要么逻辑删除。(增加一个delete_flag标识)