Files
011-ai-interview/docs/database/表结构.md
2026-01-23 13:57:48 +08:00

3.1 KiB
Raw Blame History

数据库结构

本项目使用 Coze 数据库存储数据


一、数据库信息

项目 内容
平台 Coze 数据库
数据库 ID 7595077053909712922
说明 由 Coze 工作流自动写入和管理

二、表结构

2.1 候选人面试记录表

表名由 Coze 自动管理

字段名 类型 说明 示例
session_id String 会话唯一标识 SESS_1705737600_张三_abc123
姓名 String 候选人姓名 张三
简历内容 String 解析后的简历文本 姓名:张三,学历:本科...
current_stage Integer 当前面试阶段 60
面试记录 String 完整对话记录JSON [{"role":"ai","content":"..."}]
评分结果 String 各维度评分JSON {"salesSkill":85,...}
分析报告 String 综合分析报告 候选人具备良好的销售潜质...
created_at Timestamp 创建时间 2026-01-20T10:00:00Z
updated_at Timestamp 更新时间 2026-01-20T10:25:00Z

三、字段详细说明

3.1 session_id 格式

SESS_{时间戳}_{姓名}_{随机码}

示例SESS_1705737600_张三_abc123
  • 时间戳Unix 时间戳(秒)
  • 姓名:候选人姓名
  • 随机码6位随机字符串

3.2 current_stage 阶段码

阶段码 说明
10 信息收集
20 销售技能面试
30 销售观面试
40 素质项面试
50 求职动机面试
60 面试完成

3.3 评分结果结构

{
  "salesSkill": 85,      // 销售技能 0-100
  "salesMindset": 80,    // 销售观 0-100
  "quality": 90,         // 素质项 0-100
  "motivation": 75,      // 求职动机 0-100
  "total": 82.5          // 加权总分
}

权重计算:

  • 销售技能30%
  • 销售观25%
  • 素质项25%
  • 求职动机20%

3.4 面试记录结构

[
  {
    "role": "ai",
    "content": "你好我是AI面试官请先做个自我介绍。",
    "timestamp": "2026-01-20T10:01:00Z"
  },
  {
    "role": "user",
    "content": "你好,我叫张三...",
    "timestamp": "2026-01-20T10:01:30Z"
  }
]

四、数据访问方式

4.1 查询单条记录

# 后端调用 Coze API
response = await coze_client.post(
    "/v1/database/query",
    json={
        "database_id": "7595077053909712922",
        "filter": {
            "session_id": "SESS_xxx"
        }
    }
)

4.2 查询列表(分页)

response = await coze_client.post(
    "/v1/database/query",
    json={
        "database_id": "7595077053909712922",
        "page": 1,
        "page_size": 20,
        "sort": {
            "field": "created_at",
            "order": "desc"
        }
    }
)

五、数据写入

数据写入由 Coze 工作流自动完成,后端只负责读取

工作流写入节点:

  • 节点 ID124924
  • 类型:insert_record
  • 触发时机:候选人提交信息后

变更日志

日期 变更内容 操作人
2026-01-20 初始化数据库文档 AI