# school_diy_form_fields 表文档 ## 表概述 **表名**: school_diy_form_fields **功能**: 自定义表单字段管理表,负责管理教务系统中自定义表单的字段配置,包括字段类型、验证规则、显示属性、隐私保护等字段级别的详细配置 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment field_id int NULL NO PRI NULL auto_increment select,insert,update,references 字段id form_id int NULL NO 0 select,insert,update,references 所属万能表单id field_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段唯一标识 field_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段类型 field_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段名称 field_remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段说明 field_default text utf8mb4_general_ci YES NULL select,insert,update,references 字段默认值 write_num int NULL NO 0 select,insert,update,references 字段填写总数量 field_required tinyint NULL NO 0 select,insert,update,references 字段是否必填 0:否 1:是 field_hidden tinyint NULL NO 0 select,insert,update,references 字段是否隐藏 0:否 1:是 field_unique tinyint NULL NO 0 select,insert,update,references 字段内容防重复 0:否 1:是 privacy_protection tinyint NULL NO 0 select,insert,update,references 隐私保护 0:关闭 1:开启 create_time int NULL NO 0 select,insert,update,references 创建时间 update_time int NULL NO 0 select,insert,update,references 更新时间 ``` ## 功能用途 ### 主要功能 - **字段配置管理**: 管理表单中每个字段的详细配置信息 - **字段类型控制**: 支持多种字段类型(文本、数字、选择、日期等) - **验证规则设置**: 配置字段的必填、唯一性、格式验证等规则 - **显示控制**: 管理字段的显示/隐藏状态 - **默认值设置**: 为字段设置默认值,提升用户体验 - **隐私保护**: 对敏感字段进行隐私保护设置 - **填写统计**: 统计每个字段的填写次数和使用情况 - **字段标识**: 通过field_key提供字段的唯一标识 - **字段说明**: 为字段提供详细的说明和帮助信息 ### 业务场景 - **表单设计**: 在创建自定义表单时配置各种字段 - **数据收集**: 根据字段配置收集和验证用户输入数据 - **表单验证**: 基于字段规则进行数据验证和格式检查 - **隐私合规**: 对涉及隐私的字段进行特殊保护处理 - **用户体验**: 通过默认值和说明提升表单填写体验 - **数据分析**: 分析各字段的填写情况和使用频率 - **表单优化**: 根据字段使用统计优化表单设计 - **权限控制**: 根据字段属性控制不同用户的访问权限 ## 关联关系 ### 主要关联表 - `school_diy_form`: 自定义表单表 (form_id) - `school_diy_form_data`: 表单数据表 (通过field_key关联) - `school_student`: 学生信息表 (表单填写者) - `school_personnel`: 人员信息表 (表单创建者) - `sys_log`: 系统日志表 (字段操作日志) ### 关联说明 - **表单关联**: form_id关联到school_diy_form表,确定字段所属表单 - **数据关联**: field_key作为字段标识,关联到具体的表单数据 - **用户关联**: 字段配置影响用户填写表单的体验和验证 - **日志关联**: 字段的创建、修改、删除操作需要记录日志 - **统计关联**: write_num字段统计该字段的填写次数 ## 索引建议 - **主键索引**: field_id (已存在) - **外键索引**: form_id (表单字段查询) - **唯一索引**: (form_id, field_key) (表单内字段唯一性) - **业务索引**: - field_type (字段类型查询) - field_required (必填字段查询) - field_hidden (显示字段查询) - field_unique (唯一字段查询) - **复合索引**: - (form_id, field_hidden) (表单可见字段查询) - (form_id, field_required) (表单必填字段查询) - (field_type, field_required) (特定类型必填字段) - **统计索引**: write_num (字段使用统计) - **时间索引**: - create_time (创建时间查询) - update_time (更新时间查询) ## 注意事项 - **字段标识唯一性**: field_key在同一表单内必须唯一,作为字段的唯一标识 - **表单关联完整性**: form_id必须对应有效的表单记录 - **字段类型一致性**: field_type需要与实际数据类型保持一致 - **验证规则合理性**: 必填、唯一性等规则需要合理设置,避免冲突 - **默认值格式**: field_default需要符合字段类型的格式要求 - **隐私保护合规**: privacy_protection字段涉及数据隐私,需要严格管理 - **字段依赖关系**: 修改字段配置时需要考虑对现有数据的影响 - **统计数据准确性**: write_num需要实时更新,确保统计准确 - **字段删除影响**: 删除字段前需要检查是否有关联的表单数据 - **权限控制**: 字段配置的修改需要适当的权限验证 - **数据迁移**: 修改字段类型时需要考虑数据迁移和兼容性 - **性能优化**: 大量字段的表单需要考虑查询性能优化 - **缓存策略**: 频繁访问的字段配置可以使用缓存 - **版本管理**: 字段配置的变更需要版本控制和回滚机制 - **监控告警**: 字段配置异常需要监控和告警