我只是想知道像计算器和维基百科网站,他们无限期地存储编辑的历史,并允许用户回滚所做的编辑。 有人可以推荐关于如何使用任何合适的技术(如数据库等),这样做的任何资源/书籍/文章
非常感谢!
我只是想知道像计算器和维基百科网站,他们无限期地存储编辑的历史,并允许用户回滚所做的编辑。 有人可以推荐关于如何使用任何合适的技术(如数据库等),这样做的任何资源/书籍/文章
非常感谢!
有许多的选择; 最简单的,当然,是简单地独立录制的所有版本。 对于像计算器,其中职位通常不被编辑很多时候一个网站,这是适当的。 然而,对于像维基百科,需要更聪明地节省空间。
在维基百科的情况下,网页最初保存在每个单独的版本,在文本表格 。 每隔一段时间,一些老版本的压缩在一起,然后打包成一个单一的领域。 由于将有大量的重复,为您节省了大量的空间这种方式。
您可能还需要寻找到一些版本控制系统是怎么做的-例如,Subversion使用跳过的增量 ,其中修改存储为从修订向下半历史的差异。 这意味着一个最多有O(LG n)的修订,以审查重建一个感兴趣的修订。
Git的,而另一方面,使用更类似于维基百科的做法东西。 修改在第一存储为单独压缩“松散”的对象,然后定期GIT中通吃该松散物的,根据一个有点复杂的启发式对其进行排序,然后建立“附近”对象之间压缩三角洲和转储结果作为打包文件 。 需要被读取到重建文件修订数由参数传递给包建设过程中的限制。 这有增量可以说是无关的,在某些情况下,对象之间建立了有趣的属性。