首先,让我指出,我阅读了所有有关数据库版本控制的帖子,但这并不是我正在寻找的东西,但我无法想出更好的标题(“完整”一词)这是关键)。
我有一个“编译数据库”,其中包含公共(public)交通路线规划器的所有类型的优化记录和统计数据,并且它是通过另一个数据库的程序生成的。已编译的数据库在事件期间永远不会更改,除了用户事件监视和缓存之外。有些表包含多达 2-300,000 条记录。
一旦输入数据库发生更改,此编译数据库就会完全更新。因此,任何新的数据库版本都不会以任何方式与任何其他先前版本交互。但我想单独存储每个版本,并且如果用户愿意的话,有机会从程序中使用它(将其视为公共(public)交通 map 的历史)。
唯一合理的方法就是为每个版本创建不同的物理数据库,这既不难也不错误,但我问您是否知道对完整数据库进行版本控制的任何机制(不仅仅是其中的部分数据,例如其他帖子正在询问),目的是使整个事情更加逻辑和清晰。
我使用的是 SQL Server 2012,但服务器上可能是 2008 R2。
如果您考虑将版本化数据存储在同一个数据库中(并在每个表中添加一个 VersionID 列),那就算了,因为在一个有 2-300,000 条记录的表上,有 10 个版本(这将在更少的时间内累积)超过3个月)意味着超过300万条记录,其中只有30万条会被使用,所以,没门!
最佳答案
我认为多数据库方法很好。您可以尝试进行存储级重复数据删除。这可能会大大减少存储使用量。只需确保创建新数据库作为备份并从旧数据库恢复,以便它们大部分字节相同。
关于sql-server - SQL Server 中的完整数据库版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976592/