导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

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

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

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

不知这种做法好不好?

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

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告