关于数据库设计的一点疑惑

关于数据库设计的一点疑惑

我现在经手的一个项目,跟老师你后端的CMS功能差不多,这个系统的表都加了一个common_id和is_del字段,新增数据的时候id和common_id相同,并且跟其表的外键也是通过common_id维护的。更新数据的时候不是在修改原数据,而是把编辑的新数据保存进数据库,新增的数据common_id和原数据的common_id相同,原数据is_del改为删除状态,查询的时候通过common_id和is_del=0就可以查询到最新的数据。这样的好处就是数据的变更记录都保存在数据库里了,坏处就是增加了很多冗余数据,并且id和common_id不熟悉的人容易混淆。我想知道这种设计方式值得学习吗?该怎么取舍呢?希望老师帮忙解解惑!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
7七月 2020-11-28 21:15:46

不太理解这样做的作用是什么。现在咱们课程里本身的删除就是软删除,也是保存了历史记录的,为什么要像你这样做呢?

  • 提问者 qq_执着丶_0 #1
    他这个不是保存删除的数据,而是把每次编辑的原始数据都保存一份,比如有个编号10010商品A的价格是100元,后面降价了把这个商品的价格改成了90元,那么他更新这个商品时不是直接把100改成90,而是把商品A的数据复制一份但是价格是90添加到数据库,这个新增的商品A价格跟id不一样,但是common_id是一样的,之前那个100元的商品A就是删除状态的。如果我把商品A的价格改了5次,那么数据库就有5条10010编号的商品信息,这5条信息的id和价格不一样,common_id一样,然后前面4条是删除状态的,不知道我这样说,老师能理解吗?
    2020-11-28 23:44:54
  • 7七月 回复 提问者 qq_执着丶_0 #2

    能理解。那这个也没有必要。应该设计单独的接口或者方法 ,将历史数据单独操作,而不是让整个数据库都这么保存历史记录。有必要吗。。。

    2020-11-29 01:41:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师