【问题标题】:Build article/document versioning system as in Joomla在 Joomla 中构建文章/文档版本控制系统
【发布时间】:2018-12-14 21:28:06
【问题描述】:

我正在构建一个 Web 应用程序,我的客户希望能够查看该应用程序的原始报告(报告最终会由我客户公司的项目负责人更改)。 我猜他们将来会希望看到更多信息,比如每次更改以及从原始报告到最终报告的过程中谁做了什么。 这就是为什么我正在考虑为所有报告实施版本控制系统,以便他们可以将所有更改追溯到原始报告。

我已经使用 Joomla 很长时间了,我喜欢他们构建数据库的方法,所以我想知道是否有人熟悉 Joomla 如何在他们的数据库中解决这个问题。我可以看到他们有单独的表,名为:ucm_history。这是他们在数据库中唯一用于跟踪旧版本文章的东西吗?

如果有人可以帮助我描述版本控制的最佳实践,我将非常感激,并且我相信随着越来越多的应用程序中出现这种情况,它会对许多其他人有所帮助。

【问题讨论】:

    标签: php joomla


    【解决方案1】:

    是的,所有的版本数据都被塞进了那一张表中。

    sha1_hash 列在我看来是一个非常聪明的数据存储,因为它可以非常快速地评估什么是独特的(当然是在最初的character_count 检查之后),而无需扫描不断增长的每行可能包含数万个字符的内容行数。识别独特的内容对于避免不必要的表格膨胀至关重要。

    ucm_history 表(Unified Content Model,如果有人想知道的话)最显着的缺点是您不能轻易地对内容数据调用任何有意义的查询,因为它全部转换为 json。

    ucm_history 表是专门设计的,它的存在点/目标只是存储。要处理数据,必须将其完全拉出,然后解析 json 数据。

    如果这对您的项目来说已经足够了,请继续构建您自己的代码/数据库克隆……毕竟,它是开源的!

    我对 Joomla 的版本弹出模式如何工作(在显示模式时滚动页面时亮/灭)以及由于没有更改而可能没有更新的通用“已保存”消息有一些担忧。但是,总的来说,它是非常聪明的东西,值得效仿。

    附言以后,请在JoomlaStackExchange 发布您的 Joomla 问题。

    【讨论】:

      猜你喜欢
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      相关资源
      最近更新 更多