池馆 3.0 · 数据结构设计

池馆 3.0 资源结构设计草案

三层架构:资源层 / 内容产品层 / 教学运行层

zigzagYang 头像
zigzagYang
NJUP·2026 年 8 月 20 日

一、设计目标

  1. 数字教材是固定出版物:审定后不可由教师修改,班级只能决定「教哪些、按什么顺序教」。
  2. 资源可复用:语料(Material)与题组(QuestionBlock)在题库与教材之间灵活调用,物理上统一存储。
  3. 教学编排独立于教材结构:班级不复制教材节点,只引用教材的 StructureNodeContentBlock
  4. 任务独立成实体:无论来源是题库、教材还是临时编写,每次发布的任务都是独立副本,拥有独立作答记录。

二、三层架构总览

层级作用核心实体
资源层可复用的教学内容原材料Material、QuestionBlock、Question、Point
内容产品层固定出版的数字教材CourseBook、StructureNode、ContentBlock 及其 Payload 表
教学运行层班级、编排、任务、学习痕迹Class、TeachingSchedule、ScheduleItem、Task、ContentBlockProgress、TaskAttempt

三、资源层

Material(语料)

教材与题库共用的语料实体。通过 owner_type 区分题库级与教材内嵌级,内嵌语料不进入题库检索范围。

标记字段类型说明
PKidUUID主键
owner_typeENUMquestion_bank / course_book
owner_idUUID所属题库或教材
genreVARCHAR体裁
modalityVARCHAR[]TEXT / AUDIO / VIDEO / IMAGE
contentJSONB正文与媒体链接
sourceENUMai / human / hybrid
review_statusENUM仅题库级必填

QuestionBlock(题组)

题组与语料共用所有权模型。按 owner_type 区分题库级与教材内嵌级。

标记字段类型
PKidUUID
owner_typeENUM
owner_idUUID
block_typeVARCHAR
primary_skillVARCHAR
secondary_skillsVARCHAR[]
instructionTEXT
difficultyDECIMAL
versionVARCHAR
review_statusENUM

QuestionPoint

沿用题库四层模型:QuestionBlock → Question → Point

实体标记字段类型
QuestionPKidUUID
FKquestion_block_idUUID
seq / body / b_form / scoring
PointPKidUUID
FKquestion_idUUID
seq / answer / score / blank_placeholder

四、内容产品层

CourseBook(数字教材)

固定出版的内容产品,拥有版次、版本与出版状态。

StructureNode(结构节点)

教材的层级树,与内容块完全分离。level 决定深度,node_type 支持自定义层级名(Unit / Part / Section 等)。

ContentBlock(内容块壳)

最小可教学单元,按教学角色分为 6 类。仅挂载在叶子 StructureNode 下。

字段类型说明
idUUID主键
structure_node_idUUID / FK所属叶子节点
seqINT节点内排序
titleVARCHAR可选标题
block_typeENUMmaterial / instruction / activity / question / reference / navigation
is_assessedBOOLEAN是否参与评分
visible_toENUMall / teacher / student / custom
versionVARCHAR版本号

ContentBlock 多态 Payload

每种 block_type 对应一张 Payload 表,与 content_block 一对一。关键 Payload 包括:

五、教学运行层

Class(班级)

教学过程容器。引用主教材与辅助教材,但不复制教材结构。

TeachingScheduleScheduleItem

每个班级一份编排表;ScheduleItem 是最小编排单位。可写定日期,也可以仅表示顺序。

全范围 Item 机制

建班时自动生成一个 is_all_inclusive=true 的全范围 Item,引用主教材根节点。老师拖拽 ContentBlock 到具体 Item 时,该块从全范围 Item 的教学范围中移除,但仍对学生可见;删除具体 Item 时,内容自动回到全范围 Item。
状态学生可见纳入成绩
被 ScheduleItem 引用是(若含计分 Task)
全范围 Item 中的剩余块否(可自学)
老师明确隐藏

ScheduleItemTarget

一个 ScheduleItem 可引用多个 ContentBlockStructureNode,支持跨教材。通过 source_course_book_idpinned_version 锁定来源与版本。

Task(任务)

独立发布的作业、测验或练习。每次发布都是新实体,与来源题组解耦,拥有独立作答记录。

字段说明
task_typefrom_question_block / from_material / free_form
source_question_block_id来源题组,发布时复制内容
questions_json题目副本
scoring_typemachine / ai / human / hybrid

ContentBlockProgressTaskAttempt

学习痕迹锚定到最小单元。ContentBlockProgress 记录内容消费,TaskAttempt 记录任务作答,共同支撑过程性评价。

六、关键边界约束

七、ER 图

图 1池馆 3.0 资源结构 ER 图。橙色:资源层;紫色:内容产品层;蓝色:教学运行层。PK 为主键,FK 为外键,PK/FK 为联合主键兼外键。点击打开交互式大图浏览页 →

说明

  • 本草案为池馆 3.0 智慧课程服务平台的底层资源结构设计,后续将随业务需求迭代细化。
  • 签到、通知发布、形成性评估等功能不在本轮设计范围内。
  • zigzagYang 头像
    zigzagYang
    南京大学出版社 · 2026 年 8 月
    POOLHOUSE-3.0-DATA-MODEL-20260820