2012-05-07 7 views
1

Wikiのようなアプリケーションを開発するためにNoSQLデータベースをお勧めしますか?NoSQLデータベースはWikiを開発するのに適していますか?

私は多くのサブセクションテキストを持つためにドキュメントが必要であり、バージョン管理されていても正規化されています。

ウィキペディアのページを考えてください。これは多くのセクションを持ち、Wikiであるため、ドキュメントのバージョン管理機能を備えています。ただし、段落が変更されるたびに、新しい文書を作成する(または文書を完全に複製する)ことは望ましくありません。その特定のパラグラフ(またはセクション)に新しいバージョンを追加するだけで、ストレージのスペースを無駄にすることはありません。

データベースまたはデザイン戦略に関する推奨事項はありますか?

答えて

4

現在のところNoSQLデータベースは、あなたがここで(私が知る限り)あなたが望むものを提供していません。あなたが望むものに最も近いのは、CouchDBで、毎回の更新で文書の改訂履歴を保持します。ディスクスペースは安いので、一般的に問題ありません。

しかし、バージョン管理がビジネスの鍵であり、ビジネス要件の1つであれば、この問題を解決するために特別に作られたツールを選択する必要があります。 Gitはあなたが望むものを正確に行い、Wikiアプリのために多くの重労働を実行します(バージョン差分、変更を加えた誰かの簡単な責任、フックなどがあります)。

GitHub wikiページの大きな例です。 git(Gollum)で構築されたwikiエンジンはオープンソースです。

ここにあなたのオプションがあり、結論には:

  • リビジョンがあなたのために追跡しますが、私の知る限り知っている として文書
  • 改正を実装のコピーを保存し、使用のgitの
  • のCouchDBあなたのアプリケーションで のロジックがあれば、どんなNoSQLデータベースもうまく収まります。 「あなたは、同時実行制御以外の目的のために、文書の改訂に頼ることはできません。原因圧密に を、改訂はいつでも消えることがあります。あなたは、クライアントのリビジョンシステムのためにそれらを使用することはできません。」
+1

- https://wiki.apache.org/couchdb/Document_revisions – Hal

関連する問題