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

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

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

不知这种做法好不好?

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

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2017-03-29 02:53
社区公告
暂无公告