Reputation: 4313
What NoSQL database do you recommend for developing a Wiki-like application?
I need documents to have many sub-section texts, and each can be versioned controlled, and yet normalized.
Think of a Wikipedia page. It has many sections, and being a Wiki, it has version control for the document. However, I do not want a new document to be created (or the document being entirely duplicated) everytime a paragraph is changed. I only want that particular paragraph (or section) to have a new version, so it won't waste space on storage.
Any recommendation on the database or the design strategy?
Upvotes: 1
Views: 1415
Reputation: 11823
Currently no NoSQL database provides what you want here (as far as I know). The closest to what you want is the CouchDB which keeps document revision history on every update. The disk space is cheap so generally it's not a problem.
But if versioning is the key to your business and one of the business requirements you should choose a tool that is built specifically to solve this problem - Git. Git does exactly what you want and does a lot of heavy lifting for your wiki app (like version diffs, easy blame in other words who did what changes, has hooks etc.).
A great example is GitHub wiki pages. Their wiki engine built on git (Gollum) is open-sourced.
To conclude, here are your options:
Upvotes: 4