如果我有一个允许用户更改文档的 PHP 应用程序,那么为每个文档实现修订跟踪的最佳方法是什么?我希望每个修订版本的存储都像 svn 和其他 SCM 对代码所做的那样进行删除(即只保存所做的更改)。我在一个非常简单的层面上知道它是如何工作的,但是当我开始考虑实现它时,我有点困惑。
首先,我想知道是否有一个图书馆可以帮助我解决这个问题,所以我不必完全自己动手。
我想知道:我应该只保留原始文档的全文,然后只保存更改,还是应该保留最新文档的全文,每次修改时,将差异保存为旧版本?
如果是前者,那么当我要抓取一个页面显示在网站上时,我是否必须从头开始,然后根据修订递归更新数据,直到达到当前版本?一旦有很多修订,这会不会很慢?
如何在 PHP 中进行差异/补丁类型操作,以使页面的 deltifying 和重建更容易?
在编辑页面时锁定页面是否值得?或者让页面进入“冲突状态”并进行冲突解决操作——让两个用户同时修改同一个页面,如果他们正在修改不同的部分等等——我会疯狂地想这会有多难。啊!