2012-05-07 3 views
1

Quelle base de données NoSQL recommandez-vous pour développer une application de type Wiki?Quelle base de données NoSQL est bonne pour développer un wiki?

J'ai besoin que les documents contiennent de nombreux textes de sous-sections, et que chacun puisse être contrôlé en version, et pourtant normalisé.

Pensez à une page Wikipedia. Il a beaucoup de sections, et étant un Wiki, il a le contrôle de version pour le document. Cependant, je ne veux pas qu'un nouveau document soit créé (ou que le document soit entièrement dupliqué) chaque fois qu'un paragraphe est modifié. Je veux seulement que ce paragraphe particulier (ou section) ait une nouvelle version, ainsi il ne perdra pas l'espace sur le stockage.

Une recommandation sur la base de données ou la stratégie de conception?

Répondre

4

Actuellement aucune base de données NoSQL ne fournit ce que vous voulez ici (pour autant que je sache). Le plus proche de ce que vous voulez est le CouchDB qui conserve l'historique des révisions des documents à chaque mise à jour. L'espace disque est bon marché donc généralement ce n'est pas un problème.

Mais si la gestion des versions est la clé de votre activité et que vous avez besoin de l'un des outils requis, choisissez un outil spécialement conçu pour résoudre ce problème - Git. Git fait exactement ce que vous voulez et fait beaucoup de gros efforts pour votre application wiki (comme les différences de version, blâme facile en d'autres termes qui a fait ce qui change, a des crochets, etc.).

Un bon exemple est les pages wiki de GitHub. Leur moteur de wiki construit sur git (Gollum) est open-source.

Pour conclure, voici vos options:

  • utilisation git
  • CouchDB qui fait la révision de suivi pour vous, mais pour autant que je sais enregistre une copie du document
  • mettre en œuvre la révision logique dans votre application, n'importe quel db NoSQL irait bien.
+1

« Vous ne pouvez pas compter sur les révisions du document à d'autres fins que le contrôle d'accès concurrentiel. En raison de compactage, les révisions peuvent disparaître à tout moment. Vous ne pouvez pas les utiliser pour un système de révision du client. » - https://wiki.apache.org/couchdb/Document_revisions – Hal

Questions connexes