开发者社区> 问答> 正文

内容需要审核,如何设计数据表?

最近碰到个审核内容的问题. 创建和修改都需要经过机审,人审. 修改内容时,状态为审核中,前端依旧显示修改前的数据.
一条内容可能关联到多张表,一个系统很多地方都需要审核的功能,包括发布内容,发布评论,修改个人信息,设置一些文案内容.
如何设计表,尽可能做到审核功能通用,或是成为一个模块

展开
收起
酱油瓶ii 2023-07-08 07:51:04 780 0
4 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    为了实现通用的审核功能,您可以设计以下表结构:

    1. 内容表(Content):

      • content_id:内容ID
      • content_data:内容数据
      • status:审核状态(待审核、审核通过、审核不通过)
      • created_at:创建时间
      • updated_at:更新时间
    2. 审核表(Audit):

      • audit_id:审核ID
      • content_id:内容ID
      • reviewer_id:审核人员ID
      • review_status:审核状态(待审核、审核通过、审核不通过)
      • review_comments:审核意见
      • created_at:创建时间
    3. 审核人员表(Reviewer):

      • reviewer_id:审核人员ID
      • reviewer_name:审核人员姓名
      • reviewer_role:审核人员角色(例如管理员、编辑等)

    通过以上表的设计,可以实现以下功能:

    • 当创建或修改内容时,将内容数据保存在内容表中,并将状态设置为待审核。
    • 审核人员可以从审核表中获取待审核的内容,并进行审核操作。
    • 审核人员可以根据自己的角色进行不同类型的审核(例如管理员审核发布内容,编辑审核评论)。
    • 审核人员可以在审核表中添加审核意见,并将审核状态更新为审核通过或审核不通过。
    • 前端在显示内容时,可以根据内容表的状态来判断是否显示修改前的数据。

    这种设计可以适用于多个系统中需要审核功能的场景,通过扩展审核人员表和对应的角色权限,可以支持不同类型的审核操作。

    2023-07-09 18:15:35
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    内容表(Content):存储需要审核的内容信息,包括内容ID、内容类型、内容标题、内容正文、内容状态、审核结果、创建时间、修改时间等字段。其中,内容状态包括待审核、审核通过、审核不通过等状态,审核结果包括机审通过、人审通过、机审不通过、人审不通过等结果。

    审核记录表(AuditRecord):存储审核记录信息,包括审核记录ID、审核类型(机审、人审)、审核结果、审核时间、审核人等字段。其中,审核类型可以是机审或人审,审核结果可以是通过或不通过,审核时间和审核人可以记录审核操作的时间和操作人员。

    审核任务表(AuditTask):存储待审核的任务信息,包括任务ID、任务类型、任务状态、任务关联信息等字段。其中,任务类型可以是发布内容、发布评论、修改个人信息、设置文案内容等类型,任务状态可以是待审核、审核中、审核完成等状态,任务关联信息可以记录任务所关联的内容ID、评论ID、用户ID等信息。

    用户表(User):存储用户信息,包括用户ID、用户名、密码、邮箱、手机号等字段。如果需要对用户提交的内容进行审核,可以将用户信息与审核任务进行关联。

    系统设置表(SystemSetting):存储系统设置信息,包括审核规则、审核人员、审核流程等字段。其中,审核规则可以指定机审和人审的规则和算法,审核人员可以指定审核人员的角色和权限,审核流程可以指定审核任务的分配和流转方式。

    2023-07-08 19:29:15
    赞同 展开评论 打赏
  • 为了设计一个通用的审核功能,您可以考虑以下几个方面:

    1. 审核状态字段:在相关表中添加一个审核状态字段,用于表示数据的审核状态。例如,可以使用一个枚举类型的字段,包含待审核、审核通过、审核不通过等不同的状态。

    2. 审核人员字段:在相关表中添加一个审核人员字段,用于记录执行审核操作的人员信息。可以是一个用户ID或用户名的引用。

    3. 审核时间字段:在相关表中添加一个审核时间字段,用于记录审核操作的时间戳。

    4. 审核备注字段:在相关表中添加一个审核备注字段,用于记录审核人员对数据进行的备注或说明。

    5. 审核日志表:创建一个单独的审核日志表,用于记录所有审核操作的详细信息。该表可以与被审核的表建立关联,并包含审核人员、审核时间、审核结果等字段。

    6. 状态变更触发器:在相关表中设置触发器,当审核状态发生变化时,触发相应的操作。例如,当审核通过时,可以自动将相关数据发布到前端页面;当审核不通过时,可以发送通知给相关人员。

    7. 权限控制:确保只有具有审核权限的人员才能执行审核操作。可以通过角色、权限或其他身份验证机制来实现。

    8. 通用审核模块:如果多个系统需要审核功能,可以将审核功能独立成一个通用模块,其他系统可以通过调用该模块的接口来实现审核功能。这样可以避免重复开发和维护。

    请注意,具体的数据库表设计和实现方式可能因您的业务需求和技术栈而有所不同。上述建议仅供参考。在设计审核功能时,建议与您的开发团队进行讨论,并结合具体的业务场景和需求来制定最适合您的解决方案。

    2023-07-08 17:23:34
    赞同 展开评论 打赏
  • 针对您的需求,设计一个通用的审核功能模块可以有效地管理和处理审核内容。以下是一种可能的数据表设计方案:

    1. 审核内容表(audit_content)
      该表用于存储需要审核的内容信息。
      字段:
    • content_id:内容ID
    • content_type:内容类型(例如:文章、评论、个人信息等)
    • content_data:具体内容数据(存储JSON格式的数据,包括修改前和修改后的内容)
    • status:审核状态(包括待审核、审核通过、审核不通过等)
    • create_time:创建时间
    • update_time:更新时间
    1. 审核记录表(audit_record)
      该表用于记录每次审核操作的详细信息。
      字段:
    • record_id:记录ID
    • content_id:关联的内容ID
    • operator:审核操作人员
    • audit_result:审核结果(通过、不通过)
    • audit_time:审核时间
    • comments:审核意见或备注
    1. 审核角色表(audit_role)
      该表用于定义审核角色,以便区分机审和人审。
      字段:
    • role_id:角色ID
    • role_name:角色名称(例如:机审、人审)
    1. 审核流程表(audit_process)
      该表用于定义审核流程,即哪些角色需要参与审核。
      字段:
    • process_id:流程ID
    • content_type:关联的内容类型
    • role_id:审核角色ID

    通过以上的数据表设计,可以实现通用的审核功能模块。当有新的内容需要进行审核时,将相关信息插入到审核内容表中,并根据审核流程表配置的角色,依次进行审核操作。审核记录将被记录在审核记录表中,方便后续查询和审计。

    在前端显示修改前的数据时,可以根据审核状态(status)来判断是否显示修改前的内容。当状态为审核时,前端可以根据content_data字段中存储的数据来显示修改前的内容。

    此外,您还可以根据具体业务需求对上述设计进行调整和扩展,例如添加用户表、角色表等来更好地支持权限管理和用户操作记录等功能。

    2023-07-08 08:39:54
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载