### 📦 bi_user_unit_challenge_question_result(单元挑战 Challenge 源表) > 🔔 **`question_list` JSON 包含四维度评分详情,需解析出 listening/speaking/reading/writing 各自的评分。** | 字段 | 类型 | 释义 | 计算说明 | |------|------|------|----------| | `id` | bigint | 主键 | | | `user_id` | bigint | 角色 ID | | | `chapter_id` | bigint | 课时 ID | 注意:挑战是单元级功能 | | `story_id` | bigint | 故事 ID | | | `score` | integer | 总得分 | | | `score_text` | varchar | 评分等级 | Perfect / Good / Oops | | `question_list` | text | 题目列表 JSON | 包含 `listening`/`speaking`/`reading`/`writing` 四维度评分 | | `play_time` | bigint | 播放时间 | | | `created_at` | timestamptz | 首次进入时间 | **挑战进入时间** | | `updated_at` | timestamptz | 更新时间 | | | `deleted_at` | timestamptz | 删除时间 | | | `unique_id` | varchar | 唯一标识 | | | `sp_value` | integer | SP 值 | | | `exp` | integer | 经验值 | | | `level` | varchar | 等级 | | --- ### 📦 bi_vala_seasonal_ticket(季度券 PG 侧) | 字段 | 类型 | 释义 | 计算说明 | |------|------|------|----------| | `id` | bigint | 主键 | | | `account_id` | bigint | 账号 ID | | | `character_id` | integer | 角色 ID | | | `out_trade_no` | varchar | 订单号 | | | `ticket_type` | smallint | 券类型 | 1=Season Pass,2=Season Copy | | `season_package_id` | integer | 赛季包 ID | | | `season_package_name` | varchar | 赛季包名称 | | | `season_package_level` | varchar | 赛季包等级 | | | `status` | integer | 状态 | 0=未使用,1=已使用,-1=禁用 | | `give_time` | bigint | 发放时间戳 | | | `expire_time` | bigint | 到期时间戳 | | | `used_time` | bigint | 使用时间戳 | | | `redeem_code` | varchar | 兑换码 | | | `character_name` | varchar | 角色名 | | | `created_at` | timestamptz | 创建时间 | | | `updated_at` | timestamptz | 更新时间 | | | `deleted_at` | timestamptz | 删除时间 | | --- ### 📦 其他 PG 表(简要) > 🔔 以下表在统计分析中使用频率较低,列出字段概要。 #### account_detail_info(账号详情表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `account_id` | 关联账号 | | `login_time` | 登录时间 | | `device` | 设备信息 | | `device_os` | iOS/Android | | `login_address` | 登录地址,"省份-城市",`split_part(login_address,'-',2)` 取城市 | | `login_times` | 登录次数 | | `phone_login_times` | 手机登录次数(`=0` 从未手机登录) | | `created_time` | 创建时间 | #### account_login(账号登录表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `account_id` | 关联账号 | | `login_date` | 登录日期(日期维度分组) | | `status` | 状态 | | `created_time` | 创建时间 | #### account_device(设备表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `account_id` | 关联账号 | | `device` | 设备标识 | | `created_time` | 创建时间 | #### account_activity_count(账号活动统计表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `time_period` | 时间周期 | | `counts` | 计数 | | `stat_date` | 统计日期 | | `created_time` | 创建时间 | #### account_paid_activity_count(付费账号活动统计表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `time_period` | 时间周期 | | `counts` | 计数 | | `stat_date` | 统计日期 | | `created_time` | 创建时间 | #### growth_activity_behavior(增长活动行为表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `es_id` | ES 记录 ID | | `account_id` | 账号 ID | | `user_id` | 角色 ID | | `activity` | 活动 | | `behavior` | 行为 | | `sub_behavior` | 子行为 | | `source` | 来源 | | `info` | 详细信息 | | `created_at` | 创建时间 | #### user_behavior_buried_points(埋点数据表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `burying_point_id` / `burying_point_name` | 埋点信息 | | `burying_point_sub_id` / `burying_point_sub_name` | 子埋点 | | `account_id` / `account_name` | 账号 | | `character_id` / `character_name` | 角色 | | `unit_id` / `unit_name` | 单元 | | `lesson_id` / `lesson_name` | 课时 | | `component_id` / `component_name` | 组件 | | `active_time` | 活跃时间 | | `finish_status` | 完成状态 | | `step_duration` | 步骤耗时 | | `season_package_id` / `season_package_name` | 赛季包 | | `c_type` / `c_id` | 组件类别 | #### user_detail_info(用户详情表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `user_id` | 角色 ID | | `latest_login_time` | 最近登录时间戳 | | `latest_active_time` | 最近活跃时间戳 | | `created_time` | 创建时间 | #### user_behavior_0 ~ user_behavior_15(用户行为分表,16 张) | 字段 | 释义 | |------|------| | `id` | 主键 | | `user_id` | 角色 ID | | `stat_date` | 统计日期 | | `learning_time` | 学习时长 | | `created_time` | 创建时间 | #### data_sync_config(数据同步配置表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `job_name` | 任务名称 | | `database_name` | 数据库名 | | `origin_table` | 源表 | | `dest_table` | 目标表 | | `deal_time` | 处理时间 | #### feishu_table_record(飞书表格记录表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `data_table` | 数据表名 | | `record_id` | 记录 ID | #### chapter_component_index(组件索引表) > 组件与课时的索引映射关系。 #### chapter_config_count(配置计数表) > 课时配置的计数统计。 #### bi_user_task_log(用户任务日志表) | 字段 | 释义 | |------|------| | `id` | 主键 | | `user_id` | 角色 ID | | `task_type` | 任务类型 | | `task_id` | 任务 ID | | `status` | 状态 | | `start_time` | 开始时间(Unix 时间戳) | --- ## 三、MySQL `vala` 库(配置表) ### 📦 vala_game_info(游戏/单元信息表) | 字段 | 类型 | 释义 | 计算说明 | |------|------|------|----------| | `id` | bigint | 单元 ID | 关联 `game_id` | | `cn_name` | varchar | 中文名称 | | | `en_name` | varchar | 英文名称 | | | `game_code` | varchar | 游戏编码 | | | `game_category` | tinyint | 游戏类型 | 1=改编,2=原创 | | `season_package_id` | bigint | 季度包 ID | 关联 `vala_game_season_package.id` | | `index` | int | 排序 | UnitIndex = (SeasonOfQuarter-1)×12 + Index | | `level_type` | tinyint | 展开类型 | 1=顺序展开,2=触发式展开 | | `is_hide` | tinyint | 是否隐藏 | 0=不隐藏,1=隐藏 | | `is_ready` | tinyint | 是否就绪 | | | `desc` | text | 简介 | | | `plot_card_config` | text | 剧情卡配置 JSON | | | `created_at` | datetime | 创建时间 | | | `updated_at` | datetime | 更新时间 | | | `deleted_at` | datetime | 删除时间 | | --- ### 📦 vala_game_chapter(游戏关卡/课时表) | 字段 | 类型 | 释义 | 计算说明 | |------|------|------|----------| | `id` | bigint | 课时 ID | 即 `chapter_id` | | `game_id` | bigint | 所属单元 ID | JOIN `vala_game_info.id` | | `season_package_id` | bigint | 季度包 ID | | | `cn_name` | varchar | 中文名称 | | | `en_name` | varchar | 英文名称 | | | `scene_id` | varchar | 关联场景 ID | | | `index` | smallint | 排序 | 每单元 5 节课:1~5 → L01~L05 | | `lesson_type` | tinyint | 课程类型 | 1=主线,2=支线 | | `desc` | text | 简介 | | | `learn_config` | text | 思路学习内容 JSON | | | `created_at` | datetime | 创建时间 | | | `updated_at` | datetime | 更新时间 | | | `deleted_at` | datetime | 删除时间 | | **课程结构公式**: ``` ChapterIndex = UnitIndex × 5 + Chapter.Index UnitIndex = (SeasonOfQuarter - 1) × 12 + GameInfo.Index ``` --- ### 📦 vala_game_season_package(赛季包表) | 字段 | 类型 | 释义 | 计算说明 | |------|------|------|----------| | `id` | bigint | 赛季包 ID | | | `cn_name` | varchar | 中文名称 | | | `en_name` | varchar | 英文名称 | | | `level` | char | 难度等级 | L1 / L2 | | `season_of_year` | int | 年份 | | | `season_of_quarter` | int | 季度 | 1/2/3/4 | | `is_hide` | tinyint | 是否隐藏 | | | `is_ready` | tinyint | 是否就绪 | | | `index` | int | 排序 | | | `created_at` | datetime | 创建时间 | | | `updated_at` | datetime | 更新时间 | | | `deleted_at` | datetime | 删除时间 | | **课程结构层级**: ``` CourseLevel (L1/L2) └─ SeasonPackage (S0 / S1 / S2 / S3 / S4) └─ GameInfo (Unit, 每季 12 个) └─ GameChapter (Lesson, 每单元 5 个) ``` --- ### 📦 unit_challenge_question(挑战题目配置表) | 字段 | 类型 | 释义 | 计算说明 | |------|------|------|----------| | `id` | bigint | 主键 | | | `category` | varchar | 挑战科目 | listening/speaking/reading/writing | | `type` | varchar | 题目类型 | | | `question_set_id` | varchar | 题目集 ID | | | `question_content` | text | 题目配置 JSON | | | `material_list` | text | 材料列表 | | | `related_path` | text | 组件关联路径 | | | `created_at` | datetime | 创建时间 | | | `updated_at` | datetime | 更新时间 | | | `deleted_at` | datetime | 删除时间 | | --- ## 四、MySQL `vala_user` 库(行为源表) ### 📦 vala_user_learn_record(用户学习记录表) | 字段 | 类型 | 释义 | |------|------|------| | `id` | bigint | 主键 | | `user_id` | bigint | 角色 ID | | `game_id` | bigint | 故事 ID | | `chapter_id` | bigint | 关卡/课时 ID | | `component_type` | bigint | 组件类型 | | `sub_component_type` | bigint | 组件子类型 | | `component_id` | bigint | 组件 ID | | `card_content` | text | 知识卡详情 JSON | | `is_new` | tinyint | 是否新数据(0/1) | | `created_at` | datetime | 创建时间 | | `updated_at` | datetime | 更新时间 | | `deleted_at` | datetime | 删除时间 | --- ### 📦 vala_user_chapter_finish_record(课时完成记录表) | 字段 | 类型 | 释义 | |------|------|------| | `id` | bigint | 主键 | | `user_id` | bigint | 角色 ID | | `game_id` | bigint | 游戏 ID | | `chapter_id` | bigint | 关卡/课时 ID | | `created_at` | datetime | 首次完成时间 | | `updated_at` | datetime | 更新时间 | | `deleted_at` | datetime | 删除时间 | --- ### 📦 vala_user_interact_log(用户互动日志表) | 字段 | 类型 | 释义 | |------|------|------| | `id` | bigint | 主键 | | `user_id` | bigint | 角色 ID | | `npc_id` | bigint | NPC ID | | `session_id` | varchar | 会话 ID | | `component_type` | tinyint | 互动类型(1=knowledge_QA) | | `relation_type` | tinyint | 好友关系类型(1~5) | | `summary` | text | 对话总结 | | `dialog_list` | text | 对话详情 JSON | | `dialog_score` | text | 对话得分汇总 | | `tencent_soe` | text | 腾讯云语音评测 | | `chat_review_resp` | text | 回顾学习数据 | | `cost_time` | int | 耗时(秒) | | `favor_value` | int | 好感度值 | | `created_at` | datetime | 创建时间 | | `updated_at` | datetime | 更新时间 | | `deleted_at` | datetime | 删除时间 | --- ### 📦 vala_user_game_finish_record(游戏完成记录表) | 字段 | 类型 | 释义 | |------|------|------| | `id` | int | 主键 | | `user_id` | bigint | 角色 ID | | `game_id` | bigint | 故事 ID | | `chapter_id` | bigint | 关卡 ID | | `score` | float | 总得分 | | `score_level` | char | 得分等级 | | `unique_code` | varchar | 唯一校验码 | | `source_type` | tinyint | 来源类型(1=APP,2=小程序) | | `created_at` | datetime | 创建时间 | | `updated_at` | datetime | 更新时间 | | `deleted_at` | timestamp | 删除时间 | --- ### 📦 vala_user_long_term_memory(用户长期记忆表) | 字段 | 类型 | 释义 | |------|------|------| | `id` | bigint | 主键 | | `user_id` | int | 角色 ID | | `npc_id` | int | NPC 角色 ID | | `robot_id` | int | 机器人 ID | | `session_id` | varchar | 会话 ID | | `memory_type` | varchar | 记忆类型 | | `sub_type` | varchar | 来源子类型 | | `source` | varchar | 来源 | | `source_type` | varchar | 来源类型 | | `user_content` | text | 用户内容 | | `system_content` | text | 系统内容 | | `created_at` | datetime | 创建时间 | | `updated_at` | datetime | 更新时间 | | `deleted_at` | datetime | 删除时间 | --- ## 五、MySQL `vala_order` 库 ### 📦 vala_seasonal_ticket(季度券 MySQL 源表) | 字段 | 类型 | 释义 | |------|------|------| | `id` | bigint | 主键 | | `unique_code` | varchar | 季度券唯一码 | | `account_id` | bigint | 账户 ID | | `account_name` | varchar | 账户名 | | `tel` | varchar | 手机号 | | `give_time` | int | 发放时间戳 | | `expire_time` | int | 到期时间戳 | | `expire_type` | tinyint | 有效期类型 | 1=1个月 2=3个月 3=6个月 4=1年 5=3年 | | `ticket_type` | tinyint | 券类型 | 1=Season Pass,2=Season Copy | | `used_time` | int | 使用时间戳 | | `season_package_id` | bigint | 赛季包 ID | | `season_package_name` | varchar | 赛季包名称 | | `status` | tinyint | 状态 | 0=未使用,1=已使用,-1=禁用 | | `created_at` | datetime | 创建时间 | | `updated_at` | datetime | 更新时间 | | `deleted_at` | datetime | 删除时间 |