【发布时间】:2019-01-13 21:34:30
【问题描述】:
很遗憾,这是一个非常笼统的问题...
想象一个创作应用程序来创建例如电气原理图。工程师绘制原理图,直到他们对自己的产品感到满意并可以投入生产。
此时将启动“修订”(例如修订“#1”)。从现在起,此修订版的所有数据/文件都不能再更改。它是只读的。
随着时间的推移,工程师们有了聪明的想法,并开始根据 Revision #1 更新现有的原理图。他们添加新功能、删除功能、用较新版本替换某些组件等,直到他们有 Revision #2。
那么一个共同的要求是:Rev.1 和 2 之间发生了什么变化?需要一些增量报告。
这对 RavenDB 意味着什么?
如果工程师开始新的修订,这是否意味着 复制所有文档并使用新的 ID 插入它们 “/proj-1/rev-2/component-1000”?我将如何更新文档之间的关系 然后? “手动”调整所有关系?
快照数据库?我可以将快照数据库与当前数据库进行比较吗?
- 如何找到这些修订之间的所有差异?
- 如果我不复制所有文档或对其进行快照,我是否需要将所有更改保存在单独的文档中(事件日志样式),即 DocX 已删除,DocY 已更新为 Value1,DocZ 已添加等?
- 我知道 RavenDb 有自己的修订系统。它基于文档的单个更改。这可以在这里发挥优势吗?
任何关于如何建模这样一个系统的提示都将受到高度赞赏。
【问题讨论】:
标签: ravendb data-modeling