数据模型版本控制和关系管理

时间:2014-01-19 17:36:32

标签: json mongodb version

问题

我正在开发一个数据模型与JSFiddle非常相似的应用程序。用户将创建一个新条目,该条目将在数据库中分配GUID。我的问题是如何处理其他用户想要修改/分叉/版本的原始条目。 JSFiddle通过对条目进行版本控制来处理这个问题(因此URL变成类似jsfiddle.net/GUID/1的东西)。

JSFiddle方法在为修改后的版本分配新GUID并仅记录与数据库中原始条目的关系方面有什么好处?

似乎无论我在数据库中创建一个新条目,它本质上都是原始文件的修改副本。

此外,注册用户和匿名用户都会像JSFiddle一样。注册用户应该能够登录并查看他们自己的所有条目以及可能存在于他们自己的条目之外的版本/分叉(尽管这不是当前的要求)。

我错过了什么吗?是否有正确和错误的方法来做到这一点?

TECH

使用parse.com的RESTful API进行数据CRUD;服务器上的节点。

1 个答案:

答案 0 :(得分:0)

  

JSFiddle方法在为修改后的版本分配新GUID并仅记录与数据库中原始条目的关系方面有什么好处?

我想象没有,两者都需要相同的复制操作和相同的双查询(在MongoDB中)来获取父级。

唯一的区别是你去过哪个领域。

  

我错过了什么吗?

不是我能看到的。

  

这样做有没有正确的方法?

好像坦白地说这个很好。

MVCC在某些方面看起来似乎是正确的做法,但是你不必全力以赴。如果你在那里可能有原因让你改变一个像CouchDB那样内置的数据库,或者因为MongoDBs实现将在其当前现有的锁机制之上,就像在锁上添加锁一样。