想象在一个共享数据库上有多个客户(例如),并且需要一个备份系统,以便可以回滚单个客户而不影响其他客户。- 客户自己是否可以下令回滚或只有某种管理员可以下令并不重要,但出于多种原因,为每个客户拥有一个数据库不是一种选择。
编辑:会有一个客户表,但客户的数据将分布在许多表中。也许是因为客户可以添加只有他们可以访问的东西。\编辑
怎样才能最好地做到这一点?
我考虑了以下选项(不介意顺序):
#1 定期进行数据库备份并建立一种机制,清除所有相关表中的所有相关行,然后从备份文件中读取客户数据并将其插入数据库。随着数据库的变化,必须维护这种机制。
#2 为每个相关表制作一个影子表。所需的机制与#1 基本相同,但不需要从外部备份文件中读取。随着数据库的变化,必须维护机制和影子表。如果客户需要能够自主订购回滚,这将比 #1 更好。
我缺少任何选项吗?有什么我应该注意的吗?最重要的是:做这种事情的任何最佳实践?
我正在使用 PostgreSQL,以防万一包含任何可以提供帮助的东西。