ikevin8me
ikevin8me

Reputation: 4313

What NoSQL database is good for developing a Wiki?

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

Answers (1)

Uzbekjon
Uzbekjon

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:

  • use git
  • CouchDB that does revision tracking for you, but as far as I know saves a copy of the document
  • implement the revision logic in your app, any NoSQL db would fit nicely.

Upvotes: 4

Related Questions