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

数据库设计之物理删除与逻辑删除物理删除存在的问题:1.历史数据关联不到删除的记录了。假如A关联了B,如果物理删除了表记录B,那么A关联B的就会查询不到B的信息了。比如之前查询A详情能查询到关联的B的数据,有一天B删除了,A再次查询详情查询不到关联的B的数据了。2.级联删除存在问题。假如需要级联删除,那么删除B就需要先关

大家好,欢迎来到IT知识分享网。数据库设计之物理删除与逻辑删除

物理删除存在的问题:

1.历史数据关联不到删除的记录了。

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

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

2.级联删除存在问题。

假如需要级联删除,那么删除B就需要先关联A的所有记录,这样是不可行的。

比如删除商品,就需要删除所有关联此商品的订单。

======

思考及总结:

1.要么像hibernate那样,作为外键且被关联的有记录的,校验不让删除B。(感觉业务要判断好多表,也不知道哪个表关联了B。)(回到商品与订单的级联删除问题,这种方式不可取,我要删除某个商品,难不成必须得删除所有关联此商品的订单?)
2.要么B物理删除再加一个历史表。(几乎每个表都会多出一个历史记录表)
3.要么逻辑删除。(增加一个delete_flag标识)

======

 逻辑删除存在的问题:

1.唯一索引。

 2.数据表冗余删除的记录,导致查询缓慢。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31170.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信