与Joomla一样构建文章/文档版本控制系统

时间:2018-12-14 21:28:06

标签: php joomla

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

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

如果有人可以帮助我描述版本控制的最佳实践,我将非常感激,而且我相信这对很多其他人都会有所帮助,因为我发现这会在越来越多的应用程序中出现。

1 个答案:

答案 0 :(得分:2)

是的,所有版本数据都被放入该表中。

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

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

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

如果这足以满足您的项目需求,请继续构建自己的代码/ db克隆...毕竟,它是开源的!

我担心Joomla的版本弹出模式是如何工作的(在显示模式时,滚动页面时亮/灭)和通用的“已保存”消息(可能因为没有更改而未进行任何更新)。但是,总体来说,这是非常聪明的东西,值得模仿。

p.s。以后,请在JoomlaStackExchange上发布您的Joomla问题。