在维护相当复杂的数据库中的数据的更改历史方面,人们已经成功地使用了哪些策略.我经常使用和开发的其中一个应用程序可以真正从跟踪记录随时间变化的更全面的方式中受益.例如,现在的记录可以有许多时间戳和修改过的用户字段,但是我们目前没有记录多个更改的方案,例如,如果回滚了一个操作.在完美的情况下,可以在每次保存后按原样重建记录,等等.

数据库的一些信息:

  • 需要具备每周增长数千条记录的能力
  • 50-60张桌子
  • 主要修订表可能每个都有数百万条记录
  • 设置合理数量的外键和索引
  • 使用PostgreSQL 8.十、

推荐答案

在过go ,我曾使用触发器来构建数据库更新/插入/删除日志(log).

每次在特定表上执行上述操作时,您都可以将一条记录插入日志(log)记录表中,该记录表记录该操作、db用户执行的操作、时间戳、执行该操作的表以及以前的值.

不过可能有更好的答案,因为这需要在执行实际删除或更新之前缓存该值.但是你可以用它来做回滚.

Database相关问答推荐

prisma 中的隐式或显式多对多关系

实体关系图. IS A 关系如何转换为table表?

如何理解 CAP 定理的可用性?

MongoDB和Redis有什么区别?

用于为 Android 设计 SQLite 数据库的开发人员工具

SQL Server 中的Is Identity列属性是什么意思?

Java中基于文件的数据库

SQLite3 的动态类型

matlab 数据文件到 pandas DataFrame

是否应该强制执行参照完整性?

PostgreSQL - 将每个表转储到不同的文件中

如何从 MySQL 行中修剪前导和尾随引号?

每个 Docker 容器一个或多个数据库

表别名如何影响性能?

Slick 3.0 在数据库驱动程序级别是reactive/asynchronous的吗?对于哪些数据库?

在数据库字段中存储数字数组

什么时候用R,什么时候用SQL?

你如何记录你的数据库 struct ?

字符串列上的postgresql索引

防止 PostgreSQL 有时 Select 错误的查询计划