AI文档服务设计
- AI相关
- 时间:2025-11-24 15:57
- 69人已阅读
🔔🔔好消息!好消息!🔔🔔
有需要的朋友👉:微信号
在AI问答服务中,设计到新创建问答、问答历史、一个文档中多轮提问、一轮提问中又有多轮回答,然后还可以重新生成、点赞、踩等操作。这个时候表怎么设计呢?
一、表关系总览(层级 + 关联字段)
四张表的关联可通过 **“主从层级 + 核心关联字段”** 梳理,整体关系链为:ai_application_chat(会话) → ai_application_chat_record(问答记录/版本) → ai_answer_version(版本聚合)ai_application_chat_record(问答版本) → ai_answer_evaluate(评价)
用可视化结构表示更清晰:


二、各表间具体关联逻辑
1. ai_application_chat(会话表) ↔ ai_application_chat_record(问答记录表)
关系类型:1对多
关联字段:
ai_application_chat.id=ai_application_chat_record.chat_id业务逻辑:
一个会话(比如用户在“线路安规”应用下的一次聊天)包含多个独立问题(每个问题对应至少一条问答记录)。
例如:会话ID为chat_001的聊天中,用户问了“什么是安规?”“违规后果?”两个问题,每个问题对应ai_application_chat_record中的一条基础记录(首次回答),以及可能的多条版本记录(重新生成的回答)。
2. ai_application_chat_record(问答记录表) ↔ ai_answer_version(版本关联表)
这是新增表的核心关联,分为两种关联维度:
维度1:基础记录关联
关联字段:
ai_application_chat_record.id(首次回答的记录ID) =ai_answer_version.base_record_id作用:标记“同一问题的所有版本”的根节点(即首次回答的记录)。
维度2:版本记录关联
关联字段:
ai_application_chat_record.id(各版本回答的记录ID) =ai_answer_version.version_record_id作用:将“重新生成的回答版本”绑定到根节点下。
业务逻辑:
用户对“什么是安规?”的首次回答(record_id=rec_001)不满意,点击“重新生成”得到新版本(record_id=rec_002)。此时:ai_answer_version会新增两条记录:
①base_record_id=rec_001,version_record_id=rec_001(基础版本)
②base_record_id=rec_001,version_record_id=rec_002(版本2)通过
base_record_id=rec_001可一次性查询到该问题的所有回答版本。
3. ai_application_chat_record(问答记录表) ↔ ai_answer_evaluate(评价表)
关系类型:1对多
关联字段:
ai_application_chat_record.id=ai_answer_evaluate.record_id业务逻辑:
评价是针对具体的回答版本(而非问题或会话)的互动。比如用户对rec_002版本的回答点赞,就会在ai_answer_evaluate中插入一条record_id=rec_002的记录;若对rec_001点踩,则插入record_id=rec_001的记录。
同时,通过client_id+record_id的唯一索引,保证同一用户对同一版本只能评价一次。
三、核心业务场景的表数据流转示例
以“用户发起问题→首次回答→重新生成→点赞新版本”为例,数据流转如下:
用户在会话
chat_001中提问“什么是安规?”,系统生成首次回答:ai_application_chat_record新增id=rec_001,chat_id=chat_001(基础记录)ai_answer_version新增base_record_id=rec_001,version_record_id=rec_001用户点击“重新生成”,得到新版本回答:
ai_application_chat_record新增id=rec_002,chat_id=chat_001(版本2记录)ai_answer_version新增base_record_id=rec_001,version_record_id=rec_002用户对
rec_002版本点赞:ai_answer_evaluate新增record_id=rec_002,client_id=user_001,evaluate_type=1(点赞)
总结
四张表的核心关联逻辑可概括为:
会话包含多个问答:通过
chat_id关联会话与问答记录;问答聚合多个版本:通过
ai_answer_version的base_record_id聚合同一问题的所有回答版本;版本绑定用户评价:通过
record_id将评价精准关联到具体的回答版本。
这种设计既保持了原有表结构的稳定性,又通过新增表实现了版本管理和互动记录的需求,层级清晰且易于扩展。
上一篇: 设置小米电视盒子4C开机启动
下一篇: dify工作流带有文件上传接口的使用