# school_diy_form_write_config 表文档 ## 表概述 **表名**: school_diy_form_write_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 write_way varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 填写方式,no_limit:不限制,scan:仅限微信扫一扫,url:仅限链接进入 join_member_type varchar(255) utf8mb4_general_ci NO all_member select,insert,update,references 参与会员,all_member:所有会员参与,selected_member_level:指定会员等级,selected_member_label:指定会员标签 level_ids text utf8mb4_general_ci YES NULL select,insert,update,references 会员等级id集合 label_ids text utf8mb4_general_ci YES NULL select,insert,update,references 会员标签id集合 member_write_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 每人可填写次数,no_limit:不限制,diy:自定义 member_write_rule text utf8mb4_general_ci NO NULL select,insert,update,references 每人可填写次数自定义规则 form_write_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 表单可填写数量,no_limit:不限制,diy:自定义 form_write_rule text utf8mb4_general_ci NO NULL select,insert,update,references 表单可填写总数自定义规则 time_limit_type varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 填写时间限制类型,no_limit:不限制, specify_time:指定开始结束时间,open_day_time:设置每日开启时间 time_limit_rule text utf8mb4_general_ci NO NULL select,insert,update,references 填写时间限制规则 is_allow_update_content tinyint NULL NO 0 select,insert,update,references 是否允许修改自己填写的内容,0:否,1:是 write_instruction 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_member_level`: 会员等级表 (level_ids) - `school_member_label`: 会员标签表 (label_ids) - `school_diy_form_records`: 表单记录表 (填写记录) - `school_member`: 会员信息表 (参与人员) - `school_student`: 学生信息表 (学员参与) - `school_personnel`: 人员信息表 (教职工参与) - `sys_log`: 系统日志表 (配置变更日志) ### 关联说明 - **表单关联**: form_id关联到school_diy_form表,确定配置所属表单 - **等级关联**: level_ids关联到school_member_level表,控制等级权限 - **标签关联**: label_ids关联到school_member_label表,筛选参与人员 - **记录关联**: 与school_diy_form_records表关联,统计填写次数 - **用户关联**: 通过会员、学生、人员表控制填写权限 - **规则应用**: 配置规则应用到实际的表单填写过程 - **权限验证**: 填写时验证用户是否符合配置要求 ## 索引建议 - **主键索引**: id (已存在) - **外键索引**: form_id (表单配置查询) - **唯一索引**: form_id (每个表单唯一配置) - **业务索引**: - write_way (填写方式查询) - join_member_type (参与类型查询) - member_write_type (个人次数类型查询) - form_write_type (表单次数类型查询) - time_limit_type (时间限制类型查询) - is_allow_update_content (修改权限查询) - **复合索引**: - (form_id, write_way) (表单填写方式查询) - (join_member_type, member_write_type) (参与规则查询) - (time_limit_type, form_write_type) (时间次数规则查询) - **时间索引**: - create_time (创建时间查询) - update_time (更新时间查询) - **全文索引**: - write_instruction (填写须知搜索) ## 注意事项 - **表单关联完整性**: form_id必须对应有效的表单记录 - **等级ID格式**: level_ids需要使用正确的JSON或逗号分隔格式 - **标签ID格式**: label_ids需要使用正确的JSON或逗号分隔格式 - **规则JSON格式**: 各种rule字段需要使用有效的JSON格式 - **填写方式枚举**: write_way必须是预定义的枚举值 - **参与类型一致性**: join_member_type与level_ids、label_ids的使用要一致 - **次数限制合理性**: 填写次数限制必须为正数且合理 - **时间规则有效性**: 时间限制规则需要符合逻辑和格式要求 - **权限验证**: 填写时需要严格验证用户是否符合配置要求 - **规则缓存**: 频繁查询的配置规则可以使用缓存 - **并发控制**: 次数限制在高并发时需要准确控制 - **配置变更影响**: 配置变更可能影响正在进行的填写流程 - **数据一致性**: 配置与实际填写行为需要保持一致 - **备份恢复**: 重要配置需要定期备份 - **权限控制**: 配置修改需要严格的权限控制 - **日志记录**: 配置变更需要详细的日志记录 - **性能监控**: 监控配置对表单填写性能的影响 - **兼容性**: 配置变更需要考虑向后兼容性