# school_diy_form_submit_config 表文档 ## 表概述 **表名**: school_diy_form_submit_config **功能**: 自定义表单提交配置表,负责管理教务系统中表单的提交规则和配置,包括提交限制、验证规则、通知设置等表单提交行为的控制和管理 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references 主键id form_id int NULL NO 0 select,insert,update,references 所属万能表单id submit_after_action varchar(255) utf8mb4_general_ci NO select,insert,update,references 填表人提交后操作,text:文字信息,voucher:核销凭证 tips_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 提示内容类型,default:默认提示,diy:自定义提示 tips_text varchar(255) utf8mb4_general_ci NO select,insert,update,references 自定义提示内容 time_limit_type varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 核销凭证有效期限制类型,no_limit:不限制,specify_time:指定固定开始结束时间,submission_time:按提交时间设置有效期 time_limit_rule text utf8mb4_general_ci YES NULL select,insert,update,references 核销凭证时间限制规则,json格式 voucher_content_rule text utf8mb4_general_ci YES NULL select,insert,update,references 核销凭证内容,json格式 success_after_action text utf8mb4_general_ci YES NULL select,insert,update,references 填写成功后续操作 create_time int NULL NO 0 select,insert,update,references 创建时间 update_time int NULL NO 0 select,insert,update,references 更新时间 ``` ## 功能用途 ### 主要功能 - **提交规则配置**: 配置表单的提交次数限制、时间限制等规则 - **验证规则管理**: 设置表单提交时的数据验证规则和要求 - **通知配置**: 配置表单提交后的通知方式和接收人 - **权限控制**: 设置表单提交的权限要求和访问控制 - **状态管理**: 管理表单的启用/禁用状态和提交开关 - **限制设置**: 设置单用户提交次数、总提交次数等限制 - **时间控制**: 配置表单的开放时间和截止时间 - **审核配置**: 设置表单提交后的审核流程和规则 - **数据处理**: 配置提交数据的处理方式和存储规则 ### 业务场景 - **报名表单**: 配置课程报名表单的提交限制和验证规则 - **调查问卷**: 设置问卷调查的提交次数和时间限制 - **申请表单**: 配置各类申请表单的审核流程和通知 - **反馈表单**: 设置用户反馈表单的提交规则和处理方式 - **考试报名**: 配置考试报名表单的时间限制和资格验证 - **活动报名**: 设置活动报名表单的人数限制和条件 - **信息收集**: 配置信息收集表单的数据验证和处理 - **预约表单**: 设置预约表单的时间限制和冲突检查 - **评价表单**: 配置课程评价表单的提交规则和统计 ## 关联关系 ### 主要关联表 - `school_diy_form`: 自定义表单表 (form_id) - `school_diy_form_records`: 表单记录表 (提交记录) - `school_member`: 会员信息表 (提交权限) - `school_student`: 学生信息表 (学员权限) - `school_personnel`: 人员信息表 (教职工权限) - `school_course`: 课程信息表 (课程相关表单) - `school_class`: 班级信息表 (班级相关表单) - `sys_log`: 系统日志表 (配置变更日志) ### 关联说明 - **表单关联**: form_id关联到school_diy_form表,确定配置所属表单 - **提交记录**: 与school_diy_form_records表关联,控制提交行为 - **用户权限**: 通过member_id等关联用户信息,控制提交权限 - **业务关联**: 可能关联课程、班级等业务对象 - **配置继承**: 子表单可以继承父表单的提交配置 - **规则应用**: 配置规则应用到实际的表单提交过程 - **通知关联**: 提交后的通知与用户和管理员关联 ## 索引建议 - **主键索引**: id (已存在) - **外键索引**: - form_id (表单配置查询) - site_id (站点配置查询) - **唯一索引**: form_id (每个表单唯一配置) - **业务索引**: - status (状态查询) - submit_limit_type (限制类型查询) - is_need_login (登录要求查询) - is_need_verify (验证要求查询) - **复合索引**: - (site_id, status) (站点状态查询) - (form_id, status) (表单状态查询) - (submit_limit_type, submit_limit_num) (限制规则查询) - **时间索引**: - submit_start_time (开始时间查询) - submit_end_time (结束时间查询) - create_time (创建时间查询) - update_time (更新时间查询) - **统计索引**: - submit_limit_num (限制数量统计) - total_submit_num (总提交数统计) ## 注意事项 - **表单关联完整性**: form_id必须对应有效的表单记录 - **时间逻辑一致性**: submit_start_time必须小于submit_end_time - **限制规则合理性**: submit_limit_num必须为正数且合理 - **状态管理**: status变更需要考虑已有提交记录的影响 - **权限验证**: is_need_login和is_need_verify需要与实际验证逻辑一致 - **时间有效性**: 需要定期检查表单的时间有效性 - **限制计数**: submit_limit_num的计数需要准确维护 - **并发控制**: 高并发提交时需要考虑限制数量的准确性 - **配置缓存**: 频繁查询的配置可以使用缓存提高性能 - **变更影响**: 配置变更可能影响正在进行的提交流程 - **数据一致性**: 配置与实际提交行为需要保持一致 - **审核流程**: 如果启用审核,需要配置相应的审核人员 - **通知设置**: 通知配置需要确保接收人的有效性 - **备份恢复**: 重要配置需要定期备份 - **权限控制**: 配置修改需要严格的权限控制 - **日志记录**: 配置变更需要详细的日志记录 - **性能监控**: 监控配置对表单提交性能的影响 - **兼容性**: 配置变更需要考虑向后兼容性