我想为自己创建一个小应用程序来存储想法(事情是 - 我想让它做我的方式)
我在想简单:
id - unique id of revision in database
text_id - identification number of text
rev_id - number of revision
flags - various purposes - expl. later
title - self expl.
desc - description
text - self expl
rb;65
,而不是存储整个文本,我只是说,每当我要求最新版本时,我再次使用DB并检查修订版65 问题:这个设置最好吗?存储差异或整个文本(我知道,空间便宜......)更好吗?该修订标志是否有意义(仅复制文本不是更好 - 更多的磁盘空间,但更少db
和php
处理。
我在想,我会在这里和PEAR一起去。虽然要点是open-edit-save
,但是查看修订版本的可能性并不难以编程,并且在某些情况下可以节省生命(好的想法被删除,保存错误的版本等等)。
然而,我从未在长时间或全项目关系中使用过PEAR,但是,在我以前的经历中短暂的遭遇留下了相当不好的感觉 - 我记得,它实施起来太困难了,缓慢而且非常庞大玩,所以我不知道,如果有什么更好的。
更新:似乎有更多的文本差异预制库,有些甚至比PEAR更轻,所以我可能需要深入研究它。
虽然有各种各样的时间/项目/理念管理工具,但是一切都缺乏对我来说,无论是与用户共享,同步更多PC,时间跟踪,项目管理......我相信,这篇文章diff webapp将在以后与各种不同的工具一起内部使用。因此,如果您知道任何优秀且具有良好UI功能的项目管理应用程序,并且支持大量使用文本,请告诉我,这样我就可以节省时间,而不是重新设计。
答案 0 :(得分:2)
我认为你的问题只是沸腾到一行(如果还有别的东西,请告诉我,我会加上):
存储差异或整个文本(我知道,空间便宜......)更好吗?
除非你真的需要节省空间,否则最好存储整个文本。查看文本将比检查差异更常见,并且如果某些内容有很多修订,则可能是为最新版本“构建”文本的重要过程。想象一下,您已经完成了数千次修订的频繁使用的页面,而“全文”只与原始文件一起存储。然后你必须处理成千上万的差异只是为了查看最新的文本,而不是直接从数据库中拉出来。
如果您想妥协,每次计算任意两个修订版之间的差异时,请将其存储在单独的表中。然后你只需要计算任何给定的差异一次,所以下次你查看相同的差异时它将是即时的。如有必要,可以每隔一段时间修剪一次该表,以删除长时间未访问的差异。
答案 1 :(得分:0)
这是一个php diff函数:http://paulbutler.org/archives/a-simple-diff-algorithm-in-php/
这是另一个:holomind.de/phpnet/diff.php
答案 2 :(得分:0)
如果您要存储许多不同版本的文件,git可以为您提供很多帮助。