数据库的数据版本控制设计

walkuere 2017-03-29 02:53:27
我以前还碰到一种需求,需要保留以前的数据
更新数据不是简单地update

比如某一条数据,版本号是1,当它被别人替代后,并不是一般地删除,而是isvalid=false
然后是新插入一条数据,版本号是2,isvalid=true
同时旧数据的obsoleteDT=%datetime%并且新数据的createDT=%datetime%
还有数据更新(旧数据设置为无效)的操作员和操作原因

不知这种做法好不好?

不知现在的sql是不是有自动化这方面的控制,还是说依旧是根据用户需要手动来管理的?
...全文
579 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2017-03-29
  • 打赏
  • 举报
回复
当然, sqlserver的一些技术(2008cdc, 2016历史表)也可以做到, 但毕竟还是需要存储, 还是需要维护, 并不会让你省心多少。这些技术更多的是用来对比, 防止误删除、误操作之类的准备的。
吉普赛的歌 版主 2017-03-29
  • 打赏
  • 举报
回复
别把数据库想那么神。 isDeleted 字段是必要的。 你还可以加一个 deletedTime 字段, 记录标记为删除的时间。 如果一年(根据你们的业务而定)都不再用的数据, 可以物理删除。
shoppo0505 2017-03-29
  • 打赏
  • 举报
回复
很正常的需求。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧