2014-01-19 100 views
0

問題數據模型版本管理和關係管理

我正在開發一個應用程序,其中的數據模型將是非常相似的jsfiddle的。用戶將創建一個新的條目,將在數據庫中分配一個GUID。我的問題是如何處理其他用戶想要修改/分叉/版本的原始條目。 JSFiddle通過對條目進行版本控制來處理這個問題(所以URL變得像jsfiddle.net/GUID/1)。

JSFiddle的方法優於將新的GUID分配給修改後的版本並僅記錄與數據庫中原始條目的關係有什麼好處?

看起來好像我不得不在數據庫中創建一個新的條目,這個條目基本上是原始的修改副本。

此外,會有像JSFiddle一樣的註冊用戶和匿名用戶。註冊用戶應該能夠登錄並查看他們自己的所有條目以及可能存在於他們自己條目中的版本/分支(儘管目前這不是要求)。

我錯過了什麼嗎?有沒有正確和錯誤的方式來做到這一點?

TECH

使用parse.com的數據CRUD的RESTful API;節點在服務器上。

回答

0

JSFiddle的方法將重新分配一個新的GUID到修改後的版本並記錄與數據庫中原始條目的關係有什麼好處?

我會想象一下,兩者都需要相同的複製操作和相同的雙重查詢(在MongoDB中)來獲取父項。

唯一的區別是你所經過的領域。

我錯過了什麼嗎?

不是我能看到的。

有沒有正確和錯誤的方式來做到這一點?

看起來好像你已經坦率地報道了這一點。

MVCC確實在某些方面看起來是正確的做法,但是您不必全力以赴。如果你是這樣的話,那麼你可能需要更改爲像CouchDB那樣內置的數據庫,因爲MongoDBs的實現將在當前現有的鎖機制之上,就像在鎖上添加一個鎖一樣。

+0

感謝您的意見。我是一名JS開發人員,因此瞭解更深入的數據模型關係並不是我的優勢。很高興知道我在正確的軌道上。 –