CODE 小宇宙
ER & SCHEMA · DRAFT

实体关系(ER)图 与 字段级 Schema 草案

给研发的落地草案(方向性、非最终):13 张表,一切围绕主产品 decision(决策卡/认知轨迹) 旋转。能力画像 / 成长等级 是派生视图,由 decision 聚合而来,不重复真源。多租户隔离靠 org_id 贯穿全表。

1

关系总览

主链 + 派生
course(课程) 1—N 喂入 → project(给项目一条有体系的路径)
org
总部/校区/班级 ⟲
1—N
user
五角色
student 1—N
project
一次创造
1—N
decision ◆
主产品
decision 聚合派生 →
ability_profile
按环聚合成六维能力
growth_level
证据够则升级 L1–L5
growth_report
老师生成 → 家长
另:project 1—N app(作品/应用,可发布造物星球)· course N—N app / ability / milestone · user(parent) —relation→ user(student)。
2

表结构 Schema

字段 · 类型 · 键 · 说明
组织与身份多租户地基
org组织树(总部/校区/班级)
字段类型说明
idBIGINTPK
typeENUMhq / partner / class
nameVARCHAR名称
parent_idBIGINTFK→org自引用,构成树
regionVARCHAR区域(授权)
created_atTIMESTAMP
user用户 · 身份
字段类型说明
idBIGINTPK
roleENUMstudent/teacher/parent/partner/hq
nameVARCHAR
org_idBIGINTFK→org所属(隔离键)
sso_subVARCHARIDX统一登录 subject
relation用户关系(家长↔孩子 / 老师↔班)
字段类型说明
idBIGINTPK
from_user_idBIGINTFK→user
to_user_idBIGINTFK→user
typeENUMparent_of / teacher_of
课程付费载体 · 总部中心化
course课程 = 能力+里程碑+成果+应用
字段类型说明
idBIGINTPK
titleVARCHAR
stageENUM启蒙/入门/成长/深入/收获
goal / deliverableTEXT目标 / 交付成果
weeksTINYINT时长
owner_idBIGINTFK→userNULL=官方;否则老师自开
status / versionENUM/INTdraft/published · 版本
course_milestone课程里程碑(有序)
字段类型说明
idBIGINTPK
course_idBIGINTFK→course
ordTINYINT顺序
title / descVARCHAR/TEXT里程碑
course_ability课程 ↔ 能力(N:N)
字段类型说明
course_idBIGINTFK PK复合主键
ability_keyENUMPK六维之一(见 ability_profile)
course_app课程 ↔ 应用(N:N)
字段类型说明
course_idBIGINTFK PK
app_idBIGINTFK→app PK课程含哪些可动手应用
创造与认知主链 · 主产品
project项目 · 一次创造
字段类型说明
idBIGINTPK
student_idBIGINTFK→user
course_idBIGINTFK→course可空(自由创作)
titleVARCHAR
current_ringTINYINT0–5(六环;对孩子隐藏)
statusENUMcreating/stuck/review/published
created_at / updated_atTIMESTAMP
decision决策卡 / 认知轨迹◆ 主产品
字段类型说明
idBIGINTPK
project_idBIGINTFK→project
student_idBIGINTFK→user IDX冗余便于聚合
ringTINYINTIDX0–5 所属环
typeENUM评判/划界/求证/选择/改意图/反思/负责
summaryVARCHAR决定内容
whyTEXT"为什么这么决定"
sourceENUMauto(管线抽取)/ manual
created_atTIMESTAMPIDX
app作品 / 应用(可发布造物星球)
字段类型说明
idBIGINTPK
project_idBIGINTFK→project
owner_idBIGINTFK→user
title / preview_metaVARCHAR/JSON元数据
publish_statusENUMdraft/published
plays / likes / impactINT/TEXT造物星球指标
source_kindENUMnative / 3rd-party(填地址接入 + 统计插件)
派生 · 评价由 decision 聚合,非真源
ability_profile能力画像派生
字段类型说明
student_idBIGINTFK PK复合主键
ability_keyENUMPK看清目标/独立求证/善用资源/动手落地/听取反馈/自我认知
masteryTINYINT0–100(按 ring 聚合)
updated_atTIMESTAMP管线更新
growth_level成长等级(事件)派生
字段类型说明
idBIGINTPK升级事件
student_idBIGINTFK→user
levelTINYINT1–5
evidenceJSON佐证的 decision_ids / app_ids
upgraded_atTIMESTAMP
growth_report成长报告(老师生成 → 家长)
字段类型说明
idBIGINTPK
student_id / teacher_idBIGINTFK→user
periodVARCHAR周/月
summary / suggestionTEXT摘要 + 家庭建议
source_snapshotJSON生成时的 decision/level 快照
generated_at / delivered_toTIMESTAMP/JSON推送去向
3

关键设计要点

主产品单表化
decision 是唯一真源,追加写、不更新;ability_profile/growth_level 都是它的物化视图(可重算),避免重复真相。
多租户隔离
org_id 贯穿;查询按角色注入租户过滤(家长=自家娃 / 老师=自己班 / 伙伴=本校区 / 总部=全网)。
写入来自数据管线
decision.source=auto 由创作台对话经 Skill/LLM 抽取写入(详见「数据流时序图」);manual 为孩子"记入我的决定"。
六环对孩子隐藏
project.current_ringdecision.ring 存在但孩子端不展示;仅老师/家长端与派生能力用它。
JSON 柔性字段
preview_meta/evidence/source_snapshot 用 JSON,避免早期强 schema 束缚快速迭代。
第三方应用接入
app.source_kind=3rd-party + 统一登录 + 统计插件回传,纳入造物星球与数据。
说明:本 schema 为方向性草案,用于研发对齐;字段类型/索引/分库分表策略待与后端确认。核心不变量:decision 是主产品、能力/等级是派生、org_id 做隔离
导航中心