2012-05-07 85 views
1

您推薦開發一個類似Wiki的應用程序的NoSQL數據庫?NoSQL數據庫適合開發Wiki嗎?

我需要文檔纔能有很多小節文本,並且每個文本都可以進行版本控制,但尚未規範化。

想一想維基百科頁面。它有很多部分,並且是Wiki,它具有文檔的版本控制。但是,我不希望每次更改段落時創建一個新文檔(或者文檔被完全複製)。我只希望特定的段落(或部分)具有新版本,因此它不會浪費存儲空間。

對數據庫或設計策略有何建議?

回答

4

目前還沒有NoSQL數據庫提供你想要的東西(據我所知)。最接近你想要的是CouchDB,它在每次更新時保留文檔修訂歷史記錄。磁盤空間很便宜,所以通常這不是問題。

但是,如果版本控制是您業務的關鍵和業務需求之一,您應該選擇專門爲解決此問題而構建的工具 - Git。 Git完全符合你的需求,併爲你的wiki應用程序做了很多繁重的工作(比如版本差異,換句話說,誰做了什麼改變,有沒有鉤子等等)。

一個很好的例子是GitHub wiki頁面。他們的wiki引擎構建在git上(Gollum)是開源的。

最後,您有以下選項:

  • 使用git
  • 的CouchDB是爲你所做的修訂跟蹤,但據我 知道保存文檔
  • 落實修訂的副本 您的應用中的邏輯,任何NoSQL數據庫都可以很好地適用。
+1

「你不能靠文件修訂用於任何其他目的不是併發控制。 由於壓實,修訂可能隨時消失。你不能將它們用於客戶端版本的系統。」 - https://wiki.apache.org/couchdb/Document_revisions – Hal