【问题标题】:How create "All edits are tracked"如何创建“跟踪所有编辑”
【发布时间】:2011-07-21 03:09:09
【问题描述】:

我在我的网站上使用 PHP(Yii 框架)和 MySQL 数据库。

用户可以发布和编辑一些文章。 如何在 SO 中存储像这里这样的每个编辑版本? (与 Wikipedia 一样,此站点是协作编辑的,并且所有编辑都会被跟踪

我使用什么以及如何使用?数据库结构?一些图书馆? 我应该用什么关键词来谷歌? :)

UPD。以及如何显示修订之间的变化,就像这里的 SO?

谢谢

【问题讨论】:

标签: php mysql version-control versioning yii


【解决方案1】:

我会使用你当前的数据库结构(如果你有一个,否则用你需要的所有字段创建一个),但添加 1 或 2 个额外的列,最重要的是修订号。每次进行修订时,这可以简单地增加。将代码干净地写入数据库INSERT 命令可能会很棘手(注意,使用INSERT 而不是UPDATE,因为您想保留旧帖子)。

另一种方法是使用一列存储更新提交的时间(可能只是“创建时间”?),然后您可以从中收集更新的数量(计算行数),以及它们的顺序正在(按日期排序)。

【讨论】:

【解决方案2】:

您正在寻找具有审计日志记录功能的 PHP ORM。 Yii 框架中嵌入的 ORM 是什么?

我知道Symfony 使用Doctrine 并且有一个专用的Versionable Plugin 可以完全满足您的需求。

也许“logable_behavior”Yii 骨架可以帮助你。

【讨论】:

  • 我使用的是普通的旧 DAO,而不是 ActiveRecord 或其他 ORM
  • 也许是时候考虑一​​下了。如果你现在需要审计日志,你可能需要 i18n 和其他已经在 yii activerecord 行为或 ORM 插件中实现的东西。
猜你喜欢
  • 1970-01-01
  • 2021-12-21
  • 2023-02-10
  • 2011-04-26
  • 2020-03-20
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多