最佳答案
数据库应用程序中一个相当常见的需求是跟踪对数据库中一个或多个特定实体的更改。我听说过这种方法叫做行版本控制、日志表或者历史表(我肯定还有其他的名字)。在 RDBMS 中有许多方法可以处理它——您可以将所有源表的所有更改写入单个表(更多的是日志) ,或者为每个源表创建一个单独的历史表。您还可以选择在应用程序代码中管理日志记录,或者通过数据库触发器管理日志记录。
我正在尝试思考同一个问题的解决方案在 NoSQL/document 数据库(特别是 MongoDB)中会是什么样子,以及如何以一种统一的方式来解决它。它是否会像为文档创建版本号那样简单,而且永远不会覆盖它们?为“真实”和“已记录”文档创建单独的集合?这将如何影响查询和性能?
无论如何,这是 NoSQL 数据库的常见场景吗? 如果是的话,有没有通用的解决方案?