Frage

Wenn ich eine PHP -Anwendung habe, die es Benutzern ermöglicht, Änderungen an Dokumenten vorzunehmen, wie können Sie für jedes Dokument am besten eine Revisionsverfolgung implementieren? Ich möchte, dass die Speicherung jeder Revision (dh nur die vorgenommenen Änderungen speichern) wie SVN und andere SCMs mit Code speichern. Ich weiß auf einer sehr einfachen Ebene, wie es funktioniert, aber wenn ich anfange, darüber nachzudenken, bin ich ein wenig verwirrt.

In erster Linie frage ich mich, ob es eine Bibliothek gibt, die mir dabei helfen kann, also muss ich meine eigenen nicht vollständig rollen.

Und ich frage mich: Soll ich den vollständigen Text nur des Originaldokuments behalten und dann nur die Änderungen speichern, oder sollte ich den vollständigen Text des neuesten Dokuments aufbewahren und jedes Mal, wenn es geändert wird, sparen Sie die Unterschiede als einen der der ältere Überarbeitungen?

Wenn er erstere, wenn ich dann eine Seite holen möchte, die auf der Site angezeigt werden soll, muss ich dann am Anfang anfangen und die Daten dann rekursiv auf der Grundlage der Revisionen aktualisieren, bis ich die aktuelle Version erreiche? Wird dies nicht schmerzlich langsam sein, wenn es viele Überarbeitungen gibt?

Wie kann ich Diff/Patch -Typ -Operationen in PHP durchführen, um die Deltifizierung und Rekonstruktion der Seiten zu erleichtern?

Wäre es es wert, Sperren auf den Seiten zu haben, wenn sie sie bearbeiten? Oder lassen Sie Seiten in "Konfliktstaaten" eingehen und haben Konfliktlösungsvorgänge - lassen Sie zwei Benutzer dieselbe Seite gleichzeitig ändern, wenn sie verschiedene Teile ändern usw. - ich werde verrückt darüber nachgedacht, wie schwer dies sein wird. Ahh!

War es hilfreich?

Lösung

Dies Vorherige so Frage könnte helfen.

Andere Tipps

Warum verwenden Sie keinen Subversion Server? Sie können über die Konsole über die Konsole zugreifen exec() oder ähnliches. Es lohnt sich wirklich nicht, so etwas von Grund auf neu zu implementieren, es sei denn, Sie schreiben eine Revisionssoftware.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top