2

ユーザーがドキュメントに変更を加えることができるPHPアプリケーションがある場合、各ドキュメントのリビジョン追跡を実装するための最良の方法は何ですか?svnや他のSCMがコードで行うように、各リビジョンのストレージを削除する(つまり、行われた変更のみを保存する)ようにします。私はそれがどのように機能するかを非常に単純なレベルで知っていますが、それを実装することを考え始めると、少し混乱します。

何よりもまず、これを支援してくれるライブラリがそこにあるのだろうかと思っているので、自分で完全にロールする必要はありません。

そして、私は疑問に思っています:元のドキュメントの全文だけを保持してから変更のみを保存するのか、それとも最新のドキュメントの全文を保持し、変更するたびに違いを1つとして保存するのか古いリビジョン?

前者の場合、サイトに表示されるページを取得するときに、最初から始めて、現在のバージョンに到達するまで、リビジョンに基づいてデータを再帰的に更新する必要がありますか?多くの改訂があると、これは痛々しいほど遅くなりませんか?

PHPでdiff/patchタイプの操作を実行して、ページの削除と再構築を簡単にするにはどうすればよいですか?

彼らがそれらを編集しているときにページをロックすることは価値がありますか?または、ページを「競合の状態」にして、競合解決操作を実行します。2人のユーザーが異なる部分を変更する場合など、同じページを同時に変更できるようにします。これがどれほど難しいかを考えると、頭がおかしくなります。ああ!

4

2 に答える 2

2

この前のSOの質問が役立つかもしれません。

于 2009-12-16T07:08:30.890 に答える
0

Subversionサーバーを使用してみませんか?またはを使用して、コンソールからクライアントにアクセスできますexec()。これが改訂ソフトウェアを書いているのでない限り、そのようなものを最初から実装することは本当に価値がありません。

于 2009-12-16T07:10:52.503 に答える