【问题标题】:Auditing a MySQL table and displaying changes only after approval审核 MySQL 表并仅在批准后显示更改
【发布时间】:2011-03-06 23:32:25
【问题描述】:

我有一个小型 Web 应用程序,其中包含一些表格,用户可以在其中发布和编辑数据。我还有一个应用程序管理员来管理新发布或编辑的数据。我想做的是审核每个表并仅在管理员批准后才显示数据。

应用程序流程是这样的:用户在某个表中输入信息;管理员将被注意到,他将批准或拒绝该信息。如果批准,信息将显示在前端。一旦信息被批准,以后可以对其进行编辑。当用户编辑信息时,管理员再次被注意到,他必须批准或拒绝编辑的信息,但之前批准的信息必须在网站上仍然可用。

我还需要保留每个版本的更改信息(例如 v1、v2、v3 等)。

在您看来,完成这项工作的最佳方法是什么?

谢谢。

【问题讨论】:

    标签: php mysql audit-trail


    【解决方案1】:
    1. 使用字段IS_FOR_DISPALY 默认编号的帖子扩展您的表格。
    2. 使用包含以下字段的批准创建表:post_record_id、new_content、aprove_status、aprove_date、aprove_person、entered ...。

      • 新帖子应该转到 IS_FOR_DISPLAY = NO 的帖子和 APROVE_STATUS = NULL 的批准,
      • 管理员应该能够按 APROVE_STATUS 排序/查看,何时为 NULL - 做出决定,是 - 还应更改 IS_FOR_DISPLAY = YES 并完成初始审批后流程
      • 编辑已批准的帖子时,应在 aprovals 表中创建新记录,其中包含新内容,APROVE_STATUS = NULL
      • 当管理员查看那些 NULL 时,通过 POST_REC_ID 和 IS_FOR_DISPLAY = YES 在匹配记录中应该知道有 EDIT,并根据新旧内容,谁,何时等做出决定,如果是,旧内容可以存储在历史表如果需要,新内容应该放在posts表中,IS_FOR_DISPLAY已经是YES
      • 如果任何批准决定为否 - 不更改发布表

    这只是一般的工作流程

    【讨论】:

      【解决方案2】:

      创建历史和队列表? 编辑转到队列表,如果管理员批准 queue->real->history...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-23
        • 2012-07-18
        • 1970-01-01
        • 2012-01-16
        相关资源
        最近更新 更多