# school_assignment 表文档 ## 表概述 **表名**: school_assignment **功能**: 作业管理表,负责管理教务系统中的作业布置、提交、批改等全流程,支持班级作业和学员个人作业两种模式,支持图片、视频、文本等多种作业内容类型 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int NULL NO PRI NULL auto_increment select,insert,update,references type int NULL NO 2 select,insert,update,references 1班级作业 2学员作业 class_id int NULL YES NULL select,insert,update,references 班级id course_id int NULL YES NULL select,insert,update,references 课程id personnel_id int NULL YES NULL select,insert,update,references 老师id student_id int NULL NO NULL select,insert,update,references 学员id description text utf8mb4_general_ci NO NULL select,insert,update,references 作业描述(老师留作业的描述) content_type enum('1','2','3') utf8mb4_general_ci NO 1 select,insert,update,references 作业类型1图片2视频3文本 content_text text utf8mb4_general_ci YES NULL select,insert,update,references 学生提交的作业内容(根据content_type字段判断学生提交的内容是|文本,视频oss绝对路径url,图片oss上的绝对路径ur) deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 status int NULL NO 1 select,insert,update,references 状态 1未提交 2已提交 3待批改 4已批改 create_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 校区创建时间 update_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 校区更新时间 ``` ## 功能用途 ### 主要功能 - **作业管理**: 管理班级作业和学员个人作业的布置和提交 - **作业类型分类**: 支持班级作业(type=1)和学员作业(type=2)两种类型 - **多媒体作业**: 支持图片、视频、文本三种作业内容类型 - **作业状态跟踪**: 跟踪作业从未提交到已批改的完整流程 - **作业描述**: 记录老师布置作业的详细描述和要求 - **内容存储**: 存储学员提交的作业内容(文本/图片/视频) - **关联管理**: 关联班级、课程、老师、学员等相关信息 - **逻辑删除**: 支持作业的逻辑删除和恢复 - **时间追踪**: 记录作业的创建和更新时间 ### 业务场景 - **作业布置**: 老师为班级或特定学员布置作业任务 - **作业提交**: 学员提交图片、视频或文本形式的作业 - **作业批改**: 老师对学员提交的作业进行批改和评价 - **作业跟踪**: 跟踪作业的完成进度和批改状态 - **作业统计**: 统计班级作业完成情况和批改进度 - **作业归档**: 对已完成的作业进行归档管理 - **作业查询**: 查询特定课程或学员的作业记录 - **作业提醒**: 提醒学员及时提交作业 - **教学评估**: 基于作业情况评估教学效果 ## 关联关系 ### 主要关联表 - `school_class`: 班级信息表 (class_id外键关联) - `school_course`: 课程信息表 (course_id外键关联) - `school_personnel`: 人员信息表 (personnel_id外键关联,老师) - `school_student`: 学员信息表 (student_id外键关联) - `school_sys_attachment`: 附件表 (作业文件关联) - `school_campus`: 校区信息表 (数据范围关联) ### 关联说明 - **班级关联**: class_id关联school_class表,确定作业所属班级 - **课程关联**: course_id关联school_course表,确定作业所属课程 - **老师关联**: personnel_id关联school_personnel表,确定布置作业的老师 - **学员关联**: student_id关联school_student表,确定作业归属学员 - **附件关联**: 作业中的图片和视频文件关联附件表 - **校区关联**: 通过班级或课程间接关联校区信息 - **类型关联**: type字段区分班级作业和个人作业 ## 索引建议 - **主键索引**: id (已存在) - **外键索引**: - class_id (班级作业查询) - course_id (课程作业查询) - personnel_id (老师作业查询) - student_id (学员作业查询) - **业务索引**: - type (作业类型查询) - status (作业状态查询) - content_type (作业内容类型查询) - deleted_at (逻辑删除查询) - **复合索引**: - (class_id, status) (班级作业状态查询) - (student_id, status) (学员作业状态查询) - (personnel_id, create_time) (老师作业时间查询) - (course_id, type, status) (课程作业类型状态查询) - (type, status, create_time) (作业类型状态时间查询) - **时间索引**: - create_time (创建时间查询) - update_time (更新时间查询) ## 注意事项 - **作业类型**: type字段限定为1(班级作业)和2(学员作业)两种类型 - **外键完整性**: class_id、course_id、personnel_id、student_id必须在对应表中存在 - **内容类型**: content_type限定为1(图片)、2(视频)、3(文本)三种类型 - **状态流转**: status状态流转应遵循1→2→3→4的顺序(未提交→已提交→待批改→已批改) - **逻辑删除**: 使用deleted_at字段进行逻辑删除,0表示未删除 - **内容存储**: content_text根据content_type存储不同类型的内容 - **文件路径**: 图片和视频需要存储OSS的绝对路径URL - **作业描述**: description字段不能为空,必须提供作业要求 - **数据完整性**: 班级作业必须有class_id,学员作业必须有student_id - **权限控制**: 只有授权老师才能布置和批改作业 - **文件安全**: 上传的图片和视频需要进行安全检查 - **存储优化**: 大文件建议使用CDN加速访问 - **备份策略**: 重要作业内容需要定期备份 - **性能优化**: 大量作业查询时需要考虑分页和缓存 - **监控告警**: 建立作业提交和批改的监控机制 - **数据清理**: 建立过期作业的清理策略 - **审计要求**: 作业操作需要记录详细的操作日志