-1

スタック オーバーフローと同じように、ユーザーがステータスに応じてレコードを追加、編集、削除できるサイトを構築する予定です。すべてのユーザーは wiki のようにレコードを編集できる必要がありますが、妨害行為を避けるために、必要に応じて元に戻せるように、すべてのリビジョンを保存する必要があります。

これを行うにはいくつかの方法があると思います。ウィキペディアやスタック オーバーフローなどのサイトは、この種のデータをどのように管理していますか?

PS。データの永続化に MongoDB を使用しています。

4

1 に答える 1

3

直交する 2 つの選択肢があります。

保管所

  1. versionsフィールド名(または何でも)で、まったく同じドキュメントに履歴を保持します。

  2. 変更を別のコレクションに保存して、元のドキュメントをクリーンに保ちます。

フォーマット

  1. 元のバージョンをそのまま保存します。これにより、ロールバックが容易になります (以前のバージョンを取得して現在のバージョンを上書きするだけです)。
  2. 変更されたフィールドのみを保存します。これにより、スペースが節約されます (フィールドを追加/削除するときは注意してください)。

    2.1. スペースをさらに節約するために、文字列値の差分を保存できます。

于 2012-05-27T09:26:10.243 に答える