我正在处理使用 MongoDB 的类似 CMS 的系统。每个项目都应进行版本控制,并且还应该有一个草稿版本。大多数时候,我们只对当前发布的版本感兴趣。
所以,我一直在思考以下问题:
{
_id: "42",
current: {
name: "item1",
detail: "baz"
},
draft: {
name: "item1",
detail: "draft stuff"
},
versions: [
{
version: "1",
name: "item1"
detail: "foo"
},
{
version: "2",
name: "item1"
detail: "bar"
}
]
}
新电流的创建将首先通过“草稿”,在发布阶段它将取代当前,旧电流将移至版本阵列。类似地,通过制作副本草稿可以回滚到旧版本。
这在 MongoDB 的上下文中有意义吗?我应该将版本作为数组保存在与当前项目相同的文档中吗?