# Next_Edu 产品需求文档 (PRD) - K12 智慧教学管理系统 **版本**: 2.0.0 (K12 Enterprise Edition) **状态**: 规划中 **最后更新**: 2025-12-22 **作者**: Senior EdTech Product Manager **适用范围**: 全校级教学管理 (教-考-练-评) --- ## 1. 角色与权限矩阵 (Complex Role Matrix) 本系统采用基于 RBAC (Role-Based Access Control) 的多维权限设计,并结合 **行级安全 (Row-Level Security, RLS)** 策略,确保数据隔离与行政管理的精确匹配。 ### 1.1 角色定义与核心职责 | 角色 | 核心职责 | 权限特征 (Scope) | | :--- | :--- | :--- | | **系统管理员 (Admin)** | 基础数据维护、账号管理、学期设置 | 全局系统配置,不可触碰教学业务数据内容(隐私保护)。 | | **校长 (Principal)** | 全校教学概况监控、宏观统计报表 | **全校可见**。查看所有年级、学科的统计数据(平均分、作业完成率),无修改具体的题目/作业权限。 | | **年级主任 (Grade Head)** | 本年级行政管理、班级均衡度分析 | **年级可见**。管理本年级所有行政班级;查看本年级跨学科对比;无权干涉其他年级。 | | **教研组长 (Subject Head)** | 学科资源建设、命题质量把控 | **学科可见**。管理本学科公共题库、教案模板;查看全校该学科教学质量;无权查看其他学科详情。 | | **班主任 (Class Teacher)** | 班级学生管理、家校通知、综合评价 | **行政班可见**。查看本班所有学生的跨学科成绩、考勤;发布班级公告。 | | **任课老师 (Teacher)** | 备课、出卷、批改、个别辅导 | **教学班可见**。仅能操作自己所教班级的该学科作业/考试;私有题库管理。 | | **学生 (Student)** | 完成作业、参加考试、查看错题本 | **个人可见**。仅能访问分配给自己的任务;查看个人成长档案。 | ### 1.2 关键权限辨析:年级主任 vs 教研组长 * **维度差异**: * **年级主任 (横向管理)**: 关注的是 **"人" (People & Administration)**。例如:高一(3)班的整体纪律如何?高一年级整体是否在期中考试中达标?他们需要跨学科的数据视图(如:某学生是否偏科)。 * **教研组长 (纵向管理)**: 关注的是 **"内容" (Content & Pedagogy)**。例如:英语科目的“阅读理解”题型得分率全校是否偏低?公共题库的题目质量如何?他们需要跨年级但单学科的深度视图。 * **数据可见性 (RLS 策略)**: * `GradeHead_View`: `WHERE class.grade_id = :current_user_grade_id` * `SubjectHead_View`: `WHERE course.subject_id = :current_user_subject_id` (可能跨所有年级) --- ## 2. 核心功能模块深度拆解 ### 2.1 智能题库中心 (Smart Question Bank) 这是系统的核心资产库,必须支持高复杂度的题目结构。 * **多层嵌套题目结构 (Nested Questions)**: * **场景**: 英语完形填空、语文现代文阅读、理综大题。 * **逻辑**: 引入 **"题干 (Stem)"** 与 **"子题 (Sub-question)"** 的概念。 * **父题 (Parent)**: 承载公共题干(如一篇 500 字的文章、一张物理实验图表)。通常不直接设分,或者设总分。 * **子题 (Child)**: 依附于父题,是具体的答题点(选择、填空、简答)。每个子题有独立的分值、答案和解析。 * **交互**: 组卷时,拖动“父题”,所有“子题”必须作为一个原子整体跟随移动,不可拆分。 * **知识点图谱 (Knowledge Graph)**: * **结构**: 树状结构 (Tree)。例如:`数学 -> 代数 -> 函数 -> 二次函数 -> 二次函数的图像`。 * **关联**: * **多对多 (Many-to-Many)**: 一道题可能考察多个知识点(综合题)。 * **权重**: (可选高级需求) 标记主要考点与次要考点。 ### 2.2 课本与大纲映射 (Textbook & Curriculum) * **课本数字化**: * 系统预置主流教材版本 (如人教版、北师大版)。 * **核心映射**: `Textbook Chapter` (课本章节) <--> `Knowledge Point` (知识点)。 * **价值**: 老师备课时,只需选择“必修一 第一章”,系统自动推荐关联的“集合”相关题目,无需手动去海量题库搜索。 ### 2.3 试卷/作业组装引擎 (Assembly Engine) * **智能筛选**: 支持交集筛选(同时包含“力学”和“三角函数”的题目)。 * **AB 卷生成**: 针对防作弊场景,支持题目乱序或选项乱序(Shuffle)。 * **作业分层**: 支持“必做题”与“选做题”设置,满足分层教学需求。 ### 2.4 消息通知中心 (Notification System) 分级分策略的消息分发: * **强提醒 (High Priority)**: 系统公告、考试开始提醒。通过站内信 + 弹窗 + (集成)短信/微信模板消息。 * **业务流 (Medium Priority)**: 作业发布、成绩出炉。站内红点 + 列表推送。 * **弱提醒 (Low Priority)**: 错题本更新、周报生成。仅在进入相关模块时提示。 --- ## 3. 数据实体关系推演 (Data Entity Relationships) 基于 MySQL 关系型数据库的设计方案。 ### 3.1 核心实体模型 (ER Draft) 1. **SysUser**: `id`, `username`, `role`, `school_id` 2. **TeacherProfile**: `user_id`, `is_grade_head`, `is_subject_head` 3. **Class**: `id`, `grade_level` (e.g., 10), `class_name` (e.g., "3班"), `homeroom_teacher_id` 4. **Subject**: `id`, `name` (e.g., "Math") 5. **Course**: `id`, `class_id`, `subject_id`, `teacher_id` (核心教学关系表: 谁教哪个班的哪门课) ### 3.2 题库与知识点设计 (关键难点) #### Table: `knowledge_points` (知识点树) * `id`: UUID * `subject_id`: FK * `name`: VARCHAR * `parent_id`: UUID (Self-reference, Root is NULL) * `level`: INT (1, 2, 3...) * `code`: VARCHAR (e.g., "M-ALG-01-02" 用于快速检索) #### Table: `questions` (支持嵌套) * `id`: UUID * `content`: TEXT (HTML/Markdown, store images as URLs) * `type`: ENUM ('SINGLE', 'MULTI', 'FILL', 'ESSAY', 'COMPOSITE') * `parent_id`: UUID (Self-reference, **核心设计**) * If `NULL`: 这是一道独立题目 OR 复合题的大题干。 * If `NOT NULL`: 这是一个子题目,属于 `parent_id` 对应的题干。 * `difficulty`: INT (1-5) * `answer`: TEXT (JSON structure for structured answers) * `analysis`: TEXT (解析) * `created_by`: FK (Teacher) * `scope`: ENUM ('PUBLIC', 'PRIVATE') #### Table: `question_knowledge` (题目-知识点关联) * `question_id`: FK * `knowledge_point_id`: FK * **Primary Key**: (`question_id`, `knowledge_point_id`) ### 3.3 课本映射设计 #### Table: `textbooks` * `id`: UUID * `name`: VARCHAR * `grade_level`: INT * `subject_id`: FK #### Table: `textbook_chapters` * `id`: UUID * `textbook_id`: FK * `name`: VARCHAR * `parent_id`: UUID (Sections within Chapters) * `content`: TEXT (Rich text content of the chapter/section) -- [ADDED for Content Viewing] * `order`: INT #### Table: `chapter_knowledge_mapping` * `chapter_id`: FK * `knowledge_point_id`: FK * *解释*: 这张表是连接“教学进度”与“底层知识”的桥梁。 --- ## 4. 关键业务流程 (User Flows) ### 4.1 智能组卷与发布流程 (Exam Creation Flow) 这是一个高频且复杂的路径,需要极高的流畅度。 1. **启动组卷**: * 老师进入 [教学工作台] -> 点击 [新建试卷/作业]。 * 输入基本信息(名称、考试时长、总分)。 2. **设定范围 (锚定课本)**: * 老师选择教材版本:`人教版高中数学必修一`。 * 选择章节:勾选 `第一章 集合` 和 `第二章 函数概念`。 * *系统动作*: 后台查询 `chapter_knowledge_mapping`,提取出这几章对应的所有 `knowledge_points`。 3. **筛选题目**: * 系统展示题目列表,默认过滤条件为上述提取的知识点。 * 老师增加筛选:`难度: 中等`, `题型: 选择题`。 * **处理嵌套题**: 如果筛选结果包含一个“完形填空”的子题,系统在 UI 上必须**强制展示**其对应的父题干,并提示老师“需整体添加”。 4. **加入试题篮 (Cart)**: * 老师点击“+”号。 * 试题篮动态更新:`当前题目数: 15, 预计总分: 85`。 5. **试卷精修 (Refine)**: * 进入“试卷预览”模式。 * 调整题目顺序 (Drag & drop)。 * 修改某道题的分值(覆盖默认分值)。 6. **发布设置**: * 选择发布对象:`高一(3)班`, `高一(5)班` (基于 `Course` 表权限)。 * 设置时间:`开始时间`, `截止时间`。 * 发布模式:`在线作答` 或 `线下答题卡` (若线下,系统生成 PDF 和答题卡样式)。 7. **完成**: * 学生端收到 `Notifications` 推送。 * `Exams` 表生成记录,`ExamAllocations` 表为每个班级/学生生成状态记录。