MySQL从服务器备份数据库的各个部分

MySQL从服务器备份数据库的各个部分,mysql,spring,Mysql,Spring,我正在为Spring中的一个web应用编写后端,它在AWS RDS实例上使用MySQL数据库来跟踪用户数据。现在,SQL表是由用户组(一列中只有一个值)分隔的,因此不同的组对数据有不同的访问权限。每当使用该应用程序的人执行某项操作时,我们都希望备份他们在数据库中的部分,以便以后查看,或者如果他们愿意,在当前分支中替换他们的数据 我知道如何做到这一点的唯一方法是为每个备份创建每个表的单独副本,并保留另一个表以跟踪表的所有名称。这感觉很不雅观,而且是劳动密集型的 到目前为止,我在数据库上执行的所有操

我正在为Spring中的一个web应用编写后端,它在AWS RDS实例上使用MySQL数据库来跟踪用户数据。现在,SQL表是由用户组(一列中只有一个值)分隔的,因此不同的组对数据有不同的访问权限。每当使用该应用程序的人执行某项操作时,我们都希望备份他们在数据库中的部分,以便以后查看,或者如果他们愿意,在当前分支中替换他们的数据

我知道如何做到这一点的唯一方法是为每个备份创建每个表的单独副本,并保留另一个表以跟踪表的所有名称。这感觉很不雅观,而且是劳动密集型的

到目前为止,我在数据库上执行的所有操作都是来自服务器的SQL查询,我希望与此保持一致


有什么好办法可以满足我的需要吗?

为什么每次备份都需要一个单独的表?您可以有一个镜像主表的表,但有几个附加字段来记录有关更改的元数据,例如更改人、时间戳和更改类型(更新或删除)。每当进行更改时,只需将旧值复制到此表中,就可以获得记录随时间变化的完整历史记录。您仍然可以通过保留该列来强制基于组的访问

至于对查询执行所有这些操作,您将需要一些来查看或恢复这些归档的更改,但维护归档记录的最简单方法肯定是在主表上创建触发器。如果添加更新前和删除前触发器,则每次更新或删除记录时,这些触发器都可以将每个记录的旧版本复制到存档中(同时还可以添加元数据)