# K12Study 核心 ER 设计 ## 1. 建模范围 - 基础域:租户、组织、用户、角色、菜单、文件。 - 课程域:课程、章节、学习节点、知识点、学习进度。 - 习题与批改域:题库、试卷、作业、提交、批改、错题与复习。 - 成就与推荐域:成就定义、用户成就、推荐任务、反馈、学习闭环。 - AI 知识域:知识文件、同步任务、图谱实体/关系。 ## 2. 核心关系图(基础域 + 教学主链路) ```mermaid erDiagram SYS_TENANT ||--o{ SYS_DEPT : contains SYS_DEPT ||--o{ SYS_USER : has SYS_ROLE ||--o{ SYS_ROLE_MENU : grants SYS_MENU ||--o{ SYS_ROLE_MENU : mapped SYS_USER ||--o{ SYS_FILE : uploads COURSE ||--o{ COURSE_CHAPTER : contains COURSE_CHAPTER ||--o{ COURSE_NODE : contains KNOWLEDGE_POINT ||--o{ CHAPTER_KP_REL : mapped COURSE_CHAPTER ||--o{ CHAPTER_KP_REL : mapped COURSE_NODE ||--o{ NODE_KP_REL : mapped KNOWLEDGE_POINT ||--o{ NODE_KP_REL : mapped QUESTION_BANK ||--o{ BANK_QUESTION_REL : contains QUESTION_ITEM ||--o{ BANK_QUESTION_REL : included PAPER ||--o{ PAPER_QUESTION : contains QUESTION_ITEM ||--o{ PAPER_QUESTION : included ASSIGNMENT ||--o{ SUBMISSION : receives SUBMISSION ||--o{ SUBMISSION_ANSWER : has QUESTION_ITEM ||--o{ SUBMISSION_ANSWER : answered GRADING_TASK ||--o{ ANSWER_GRADE : produces SUBMISSION_ANSWER ||--o{ ANSWER_GRADE : graded USER_ACHIEVEMENT }o--|| ACHIEVEMENT : awarded USER_ACHIEVEMENT }o--|| SYS_USER : owner RECOMMENDATION_TASK ||--o{ RECOMMENDATION_ITEM : produces RECOMMENDATION_ITEM ||--o{ RECOMMENDATION_FEEDBACK : receives ``` ## 3. AI 知识域关系图 ```mermaid erDiagram SYS_FILE ||--o{ AI_KNOWLEDGE_FILE : source AI_KNOWLEDGE_FILE ||--o{ AI_KNOWLEDGE_SYNC_TASK : schedules AI_KNOWLEDGE_FILE ||--o{ AI_GRAPH_ENTITY : extracts AI_GRAPH_ENTITY ||--o{ AI_GRAPH_RELATION : links ``` ## 4. 实体到现有表映射(节选) - `SYS_TENANT` -> `upms.tb_sys_tenant` - `SYS_DEPT` -> `upms.tb_sys_dept` - `SYS_USER` -> `upms.tb_sys_user` - `SYS_ROLE` -> `upms.tb_sys_role` - `SYS_MENU` -> `upms.tb_sys_menu` - `COURSE` -> `course.cl_course` - `KNOWLEDGE_POINT` -> `course.cl_knowledge_point` - `QUESTION_ITEM` -> `question.hw_question_item` - `ASSIGNMENT` -> `question.hw_assignment` - `SUBMISSION` -> `question.hw_submission` - `GRADING_TASK` -> `question.gd_grading_task` - `ACHIEVEMENT` -> `achievement.ac_achievement` - `USER_ACHIEVEMENT` -> `achievement.ac_user_achievement` - `AI_KNOWLEDGE_FILE` -> `ai.tb_ai_knowledge_file` ## 5. SQL 基线目录(现有) - `init/pg/auth/10_create_auth_tables.sql` - `init/pg/upms/10_create_upms_tables.sql` - `init/pg/course/10_create_course_tables.sql` - `init/pg/question/10_create_question_tables.sql` - `init/pg/achievement/10_create_achievement_tables.sql` - `init/pg/ai/10_create_ai_tables.sql` ## 6. 设计建议 - 保持跨域依赖单向:`course/question/achievement/recommendation` 通过 `upms` 提供的主体信息关联。 - 涉及 AI 知识检索的数据优先走异步同步表,避免在线写链路阻塞。 - 复杂业务报表优先通过事实表/汇总表落地,避免线上实时多表大 join。