加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

php – 在数据库中存储差异最紧凑的方法是什么?

发布时间:2021-03-16 16:37:02 所属栏目:MySql教程 来源:网络整理
导读:我想实现与维基媒体的修订历史类似的东西?什么是最好的PHP函数/库/扩展/算法? 我希望差异尽可能紧凑,但我很高兴只限于显示每个修订版本与其兄弟版本之间的差异,并且只能一次回滚一个修订版本. 在某些情况下,只有少数几个字符可能会改变,而在其他情况下,整

我想实现与维基媒体的修订历史类似的东西?什么是最好的PHP函数/库/扩展/算法?

我希望差异尽可能紧凑,但我很高兴只限于显示每个修订版本与其兄弟版本之间的差异,并且只能一次回滚一个修订版本.

在某些情况下,只有少数几个字符可能会改变,而在其他情况下,整个字符串可能会发生变化,所以我很想知道某些技术对于小变化是否比对大变量更好,如果在某些情况下它更有效存储整个副本.

使用像Git或SVN这样的东西支持整个系统似乎有点极端,我真的不想将文件存储在磁盘上.

最佳答案 存储每个记录比存储它们的差异要容易得多.然后,如果您想要两个版本的差异,您可以根据需要使用the PECL Text_Diff library生成一个版本.

我喜欢将记录的所有版本存储在单个表中,并使用MAX(修订版),“当前”布尔属性或类似方法检索最新版本.其他人更喜欢反规范化并拥有一个镜像表来保存非当前版本.

如果存储差异,则架构和算法会变得复杂得多.然后,您需要存储至少一个“完整”版本和多个“diff”版本,并在需要完整版本时从一组差异中重建完整版本. (这就是SVN存储东西的方式.Git存储每个修订版的完整副本,而不是差异.)

程序员时间很昂贵,但磁盘空间通常很便宜.请考虑是否完整存储每个版本是一个问题.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读