sql更新、架构更新
This commit is contained in:
@@ -28,13 +28,19 @@
|
||||
<mxCell id="15" value="question.gd_wrong_question<br>PK wrong_question_id<br>student_id, question_id, source_submission_id<br>mastery_status, review_count<br>tenant_id, created_at, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="790" y="290" width="350" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="question.gd_review_plan<br>PK review_plan_id<br>FK wrong_question_id -> gd_wrong_question.wrong_question_id<br>plan_date, plan_stage, plan_status<br>tenant_id, created_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxCell id="16" value="question.gd_review_plan<br>PK review_plan_id<br>FK wrong_question_id -> gd_wrong_question.wrong_question_id<br>plan_date, plan_stage(E1-E10/CUSTOM), plan_status<br>tenant_id, created_at, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="1190" y="290" width="340" height="130" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="25" value="question.gd_review_stage_policy<br>PK policy_id<br>stage_code, stage_order, interval_days<br>retry_interval_days, pass_threshold, max_retry_count<br>enabled, tenant_id, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
|
||||
<mxGeometry x="1600" y="280" width="360" height="150" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="26" value="question.gd_review_execution<br>PK execution_id<br>FK review_plan_id -> gd_review_plan.review_plan_id<br>wrong_question_id, student_id, stage_code, result_status<br>score, reviewed_at, retry_count, next_plan_date, tenant_id" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="1600" y="470" width="380" height="170" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="question.gd_teacher_comment<br>PK comment_id<br>FK answer_grade_id -> gd_answer_grade.answer_grade_id<br>reviewer_id, comment_type, content_ref<br>tenant_id, created_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="420" y="480" width="350" height="130" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="18" value="question.gd_explanation_submission<br>PK explanation_id<br>student_id, wrong_question_id, source_answer_id<br>audio_file_id, transcript_text, submission_status<br>tenant_id, created_at, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxCell id="18" value="question.gd_explanation_submission<br>PK explanation_id<br>student_id, question_id(必填), wrong_question_id, source_answer_id<br>audio_file_id, transcript_text, submission_status<br>tenant_id, created_at, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="500" width="340" height="150" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="19" value="question.gd_explanation_assessment<br>PK assessment_id<br>UK explanation_id -> gd_explanation_submission.explanation_id<br>evaluator_type, total_score, pass_status<br>improvement_suggestion, tenant_id" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
@@ -43,7 +49,7 @@
|
||||
<mxCell id="20" value="question.gd_explanation_dimension_score<br>PK dimension_score_id<br>FK assessment_id -> gd_explanation_assessment.assessment_id<br>dimension_code, dimension_name<br>score, weight, tenant_id" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="1240" y="500" width="340" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="23" value="question.gd_answer_kp_analysis<br>PK analysis_id<br>FK answer_id -> hw_submission_answer.answer_id<br>FK kp_id -> cl_knowledge_point.kp_id<br>correctness, mastery_score, confidence<br>evidence_json, tenant_id, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxCell id="23" value="question.gd_answer_kp_analysis<br>PK (answer_id, kp_id)<br>FK answer_id -> hw_submission_answer.answer_id<br>FK kp_id -> cl_knowledge_point.kp_id<br>grading_task_id, correctness, mastery_score, confidence<br>evidence_json, tenant_id, updated_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="1240" y="90" width="360" height="160" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="21" value="upms.tb_sys_message<br>PK message_id<br>message_type, biz_type, content_object_id<br>web_jump_url, tenant_id, send_at" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
@@ -88,6 +94,12 @@
|
||||
<mxCell id="40" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;exitPerimeter=1;entryPerimeter=1;" parent="1" source="11" target="23" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="41" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;exitPerimeter=1;entryPerimeter=1;" parent="1" source="16" target="26" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="42" value="策略匹配" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;dashed=1;endArrow=block;endFill=1;exitPerimeter=1;entryPerimeter=1;" parent="1" source="25" target="26" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
|
||||
@@ -24,17 +24,17 @@
|
||||
<mxCell id="36" value="Control<br>SiteMessageService" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"><mxGeometry x="520" y="640" width="220" height="80" as="geometry"/></mxCell>
|
||||
<mxCell id="35" value="Port<br>GradingEnginePort<br>(当前规则实现 RuleBasedEngine)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="80" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="40" value="Entity<br>GradingTaskAggregate" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="210" width="230" height="70" as="geometry"/></mxCell>
|
||||
<mxCell id="41" value="Entity<br>ObjectiveScoreAggregate" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="310" width="230" height="70" as="geometry"/></mxCell>
|
||||
<mxCell id="42" value="Entity<br>SubjectiveReviewAggregate" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="410" width="250" height="70" as="geometry"/></mxCell>
|
||||
<mxCell id="43" value="Entity<br>WrongQuestionAggregate" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="510" width="240" height="70" as="geometry"/></mxCell>
|
||||
<mxCell id="41" value="Entity<br>AnswerGradeAggregate<br>question.gd_answer_grade" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="310" width="260" height="80" as="geometry"/></mxCell>
|
||||
<mxCell id="42" value="Entity<br>ReviewExecutionAggregate<br>question.gd_review_execution" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="410" width="270" height="80" as="geometry"/></mxCell>
|
||||
<mxCell id="43" value="Entity<br>WrongReviewAggregate<br>question.gd_wrong_question / gd_review_plan<br>question.gd_review_stage_policy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="510" width="310" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="44" value="Entity<br>SiteMessageAggregate<br>message_id, biz_type<br>content_object_id, web_jump_url" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" parent="1" vertex="1"><mxGeometry x="780" y="640" width="270" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="50" value="PostgreSQL(question + ai sync task)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="230" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="50" value="PostgreSQL(question.gd_* + question.hw_* + ai sync task)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="230" width="280" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="51" value="Redis(结果缓存/待复核队列)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="370" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="52" value="MQ(GradingCompletedEvent)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="510" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="53" value="PostgreSQL(upms.site_message / recipient)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="650" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="54" value="Redis(未读计数缓存)" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="770" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="55" value="Milvus + NebulaGraph/Neo4j" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"><mxGeometry x="1080" y="890" width="250" height="90" as="geometry"/></mxCell>
|
||||
<mxCell id="60" value="设计方法与原因<br>1) 批改调度、判分、复核、错题沉淀分控制器,职责清晰<br>2) 通过 Port 抽象引擎实现,后续可无缝接入AI或外部服务<br>3) 主观题待审阅由站内信服务落库(含content_object_id和web_jump_url)<br>4) 教师通过收件箱点击跳转到对应审阅页,链路可追踪可回执" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontSize=12;" parent="1" vertex="1">
|
||||
<mxCell id="60" value="设计方法与原因<br>1) 批改调度、判分、复核、错题沉淀分控制器,职责清晰<br>2) 通过 Port 抽象引擎实现,后续可无缝接入AI或外部服务<br>3) 主观题待审阅由站内信服务落库(含content_object_id和web_jump_url)<br>4) 教师通过收件箱点击跳转到对应审阅页,链路可追踪可回执<br>5) 艾宾浩斯策略与执行拆分:gd_review_stage_policy + gd_review_execution" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontSize=12;" parent="1" vertex="1">
|
||||
<mxGeometry x="1380" y="230" width="330" height="220" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="100" value="查看批改结果" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="10" target="20" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
@@ -46,14 +46,14 @@
|
||||
<mxCell id="106" value="生成复习计划" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="33" target="34" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="107" value="规则判分调用" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="31" target="35" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="108" value="任务写入" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="30" target="40" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="109" value="客观分写入" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="31" target="41" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="110" value="复核写入" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="32" target="42" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="109" value="批改结果写入" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="31" target="41" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="110" value="复习执行写入" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="32" target="42" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="111" value="错题写入" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="33" target="43" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="112" value="持久化" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="40" target="50" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="113" value="持久化" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="41" target="50" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="114" value="持久化" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="42" target="50" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="115" value="持久化" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="43" target="50" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="116" value="待复核缓存" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="42" target="51" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="116" value="复习执行缓存" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="42" target="51" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="117" value="完成事件" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="34" target="52" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="118" value="查看站内信" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="11" target="22" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
<mxCell id="119" value="待审阅通知触发" style="edgeStyle=orthogonalEdgeStyle;rounded=0;jettySize=auto;html=1;endArrow=block;endFill=1;" parent="1" source="32" target="36" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
|
||||
|
||||
Reference in New Issue
Block a user