1
您推薦開發一個類似Wiki的應用程序的NoSQL數據庫?NoSQL數據庫適合開發Wiki嗎?
我需要文檔纔能有很多小節文本,並且每個文本都可以進行版本控制,但尚未規範化。
想一想維基百科頁面。它有很多部分,並且是Wiki,它具有文檔的版本控制。但是,我不希望每次更改段落時創建一個新文檔(或者文檔被完全複製)。我只希望特定的段落(或部分)具有新版本,因此它不會浪費存儲空間。
對數據庫或設計策略有何建議?
您推薦開發一個類似Wiki的應用程序的NoSQL數據庫?NoSQL數據庫適合開發Wiki嗎?
我需要文檔纔能有很多小節文本,並且每個文本都可以進行版本控制,但尚未規範化。
想一想維基百科頁面。它有很多部分,並且是Wiki,它具有文檔的版本控制。但是,我不希望每次更改段落時創建一個新文檔(或者文檔被完全複製)。我只希望特定的段落(或部分)具有新版本,因此它不會浪費存儲空間。
對數據庫或設計策略有何建議?
目前還沒有NoSQL數據庫提供你想要的東西(據我所知)。最接近你想要的是CouchDB,它在每次更新時保留文檔修訂歷史記錄。磁盤空間很便宜,所以通常這不是問題。
但是,如果版本控制是您業務的關鍵和業務需求之一,您應該選擇專門爲解決此問題而構建的工具 - Git。 Git完全符合你的需求,併爲你的wiki應用程序做了很多繁重的工作(比如版本差異,換句話說,誰做了什麼改變,有沒有鉤子等等)。
一個很好的例子是GitHub wiki頁面。他們的wiki引擎構建在git上(Gollum)是開源的。
最後,您有以下選項:
「你不能靠文件修訂用於任何其他目的不是併發控制。 由於壓實,修訂可能隨時消失。你不能將它們用於客戶端版本的系統。」 - https://wiki.apache.org/couchdb/Document_revisions – Hal