最近碰到个审核内容的问题. 创建和修改都需要经过机审,人审. 修改内容时,状态为审核中,前端依旧显示修改前的数据.
一条内容可能关联到多张表,一个系统很多地方都需要审核的功能,包括发布内容,发布评论,修改个人信息,设置一些文案内容.
如何设计表,尽可能做到审核功能通用,或是成为一个模块
为了实现通用的审核功能,您可以设计以下表结构:
内容表(Content):
审核表(Audit):
审核人员表(Reviewer):
通过以上表的设计,可以实现以下功能:
这种设计可以适用于多个系统中需要审核功能的场景,通过扩展审核人员表和对应的角色权限,可以支持不同类型的审核操作。
内容表(Content):存储需要审核的内容信息,包括内容ID、内容类型、内容标题、内容正文、内容状态、审核结果、创建时间、修改时间等字段。其中,内容状态包括待审核、审核通过、审核不通过等状态,审核结果包括机审通过、人审通过、机审不通过、人审不通过等结果。
审核记录表(AuditRecord):存储审核记录信息,包括审核记录ID、审核类型(机审、人审)、审核结果、审核时间、审核人等字段。其中,审核类型可以是机审或人审,审核结果可以是通过或不通过,审核时间和审核人可以记录审核操作的时间和操作人员。
审核任务表(AuditTask):存储待审核的任务信息,包括任务ID、任务类型、任务状态、任务关联信息等字段。其中,任务类型可以是发布内容、发布评论、修改个人信息、设置文案内容等类型,任务状态可以是待审核、审核中、审核完成等状态,任务关联信息可以记录任务所关联的内容ID、评论ID、用户ID等信息。
用户表(User):存储用户信息,包括用户ID、用户名、密码、邮箱、手机号等字段。如果需要对用户提交的内容进行审核,可以将用户信息与审核任务进行关联。
系统设置表(SystemSetting):存储系统设置信息,包括审核规则、审核人员、审核流程等字段。其中,审核规则可以指定机审和人审的规则和算法,审核人员可以指定审核人员的角色和权限,审核流程可以指定审核任务的分配和流转方式。
为了设计一个通用的审核功能,您可以考虑以下几个方面:
审核状态字段:在相关表中添加一个审核状态字段,用于表示数据的审核状态。例如,可以使用一个枚举类型的字段,包含待审核、审核通过、审核不通过等不同的状态。
审核人员字段:在相关表中添加一个审核人员字段,用于记录执行审核操作的人员信息。可以是一个用户ID或用户名的引用。
审核时间字段:在相关表中添加一个审核时间字段,用于记录审核操作的时间戳。
审核备注字段:在相关表中添加一个审核备注字段,用于记录审核人员对数据进行的备注或说明。
审核日志表:创建一个单独的审核日志表,用于记录所有审核操作的详细信息。该表可以与被审核的表建立关联,并包含审核人员、审核时间、审核结果等字段。
状态变更触发器:在相关表中设置触发器,当审核状态发生变化时,触发相应的操作。例如,当审核通过时,可以自动将相关数据发布到前端页面;当审核不通过时,可以发送通知给相关人员。
权限控制:确保只有具有审核权限的人员才能执行审核操作。可以通过角色、权限或其他身份验证机制来实现。
通用审核模块:如果多个系统需要审核功能,可以将审核功能独立成一个通用模块,其他系统可以通过调用该模块的接口来实现审核功能。这样可以避免重复开发和维护。
请注意,具体的数据库表设计和实现方式可能因您的业务需求和技术栈而有所不同。上述建议仅供参考。在设计审核功能时,建议与您的开发团队进行讨论,并结合具体的业务场景和需求来制定最适合您的解决方案。
针对您的需求,设计一个通用的审核功能模块可以有效地管理和处理审核内容。以下是一种可能的数据表设计方案:
通过以上的数据表设计,可以实现通用的审核功能模块。当有新的内容需要进行审核时,将相关信息插入到审核内容表中,并根据审核流程表配置的角色,依次进行审核操作。审核记录将被记录在审核记录表中,方便后续查询和审计。
在前端显示修改前的数据时,可以根据审核状态(status)来判断是否显示修改前的内容。当状态为审核时,前端可以根据content_data字段中存储的数据来显示修改前的内容。
此外,您还可以根据具体业务需求对上述设计进行调整和扩展,例如添加用户表、角色表等来更好地支持权限管理和用户操作记录等功能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。