在阅读了很多关于保留页面更改历史记录或如何对数据库中的记录进行版本控制(例如)的 SO 问题之后,我找不到一个真正优雅的解决方案来完成这项工作。
现在,让我们尽可能清楚地解释我们需要什么,对于这个简单的修订系统,允许注册用户发布一些文章,其他用户提交这些文章的修订,然后一些版主用户检查这些修订。
MySQL数据库
该数据库包含一个带有以下简化字段的文章表:
ARTICLE(id, id_user, title, content, date);
为了实现修订/历史版本,我想我们会有下表:
REVISION(id, id_article, revision_id_user, id_moderator, revision_date,
revision_title, revision_content, revision_description, revision_check);
与关系:ARTICLE 0,n <---> 1,1 REVISION
工作流程
用户创建一个
ARTICLE
,插入到ARTICLE
表中(太棒了!)另一个用户对此进行了更新
ARTICLE
,此更新记录在REVISION
表中,并为主持人用户排队。(revision_check=0
)。版主用户验证
REVISION(revision_check=1)
,然后ARTICLE(content)
获取REVISION(revision_content)
值。
我的问题
- 这个工作流程似乎是一个好方法吗?
REVISION
因为,我看到了一个错误:如果一个 s有几个ARTICLE
:
- 我们应该取上次提交的内容
REVISION
还是原始内容ARTICLE
? - 或者,我们是否需要阻止修订,因为
REVISION
在未检查最后一个时无法提交其他修订。
有没有办法记录轻量级版本?顺便问一下,是否可以在
REVISION
表中插入仅通过 SQL、PHP 或 js 比较函数更新的内容?以及如何像 SO 那样显示它?因为我怕REVISION
桌子会很重。奖金:怎么做?
任何想法、链接、来源、插件(MySQL、PHP 5 和 JS/jQuery)将不胜感激。