# 数据库表结构参考 — user-info 技能 ## 涉及数据源 | 数据库 | 数据库名 | 用途 | 表 | |--------|---------|------|-----| | MySQL Online | vala_user | 账号/角色 | vala_app_account, vala_app_character | | MySQL Online | vala_order | 赛季通票(订单) | vala_seasonal_ticket | | MySQL Online | vala | 课程结构 | vala_game_chapter, vala_game_season_package | | PostgreSQL Online | vala | 学习行为 | user_chapter_play_record_0~7 | ## MySQL 核心表 ### vala_user.vala_app_account — 用户账号表 | 字段 | 用途 | |------|------| | id | 账号ID | | tel | 手机号(脱敏,格式 138****1234) | | created_at | 注册时间 | | updated_at | 最近活跃时间 | | login_times | 登录次数 | | key_from | 注册来源 | | download_channel | 下载渠道编码 | | status | 1=有效 | | deleted_at | 软删除标记 | ### vala_user.vala_app_character — 角色表 | 字段 | 用途 | |------|------| | id | 角色ID | | account_id | 所属账号ID | | nickname | 角色名称 | | gender | 0=女, 1=男 | | birthday | 生日 (YYYY-MM-DD) | | latest_login | 最后登录时间 | | created_at | 创建时间 | | purchase_season_package | 已购赛季包列表 | | deleted_at | 软删除标记 | ### vala_order.vala_seasonal_ticket — 赛季通票表(订单替代) | 字段 | 用途 | |------|------| | id | 通票ID | | account_id | 账号ID | | season_package_name | 套餐名称 | | ticket_type | 1=赛季通票, 2=兑换卡 | | status | -1=已过期, 0=未使用, 1=已使用 | | give_time | 发放时间 (Unix时间戳) | | expire_time | 过期时间 (Unix时间戳) | | used_time | 使用时间 (Unix时间戳) | | created_at | 创建时间 | ### vala.vala_game_chapter — 课程章节表 | 字段 | 用途 | |------|------| | id | 章节ID(关联 play_record.chapter_id) | | cn_name | 中文名称 | | season_package_id | 所属赛季包ID | | lesson_type | 1=常规课(用于单元分组) | | index | 课程序号 | ### vala.vala_game_season_package — 赛季包表 | 字段 | 用途 | |------|------| | id | 赛季包ID | | level | 课程级别 (A1/A2/B1...) | | season_of_quarter | 季度序号 | | cn_name | 中文名称 | ## PostgreSQL 核心表 ### vala.user_chapter_play_record_0~7 — 章节完课记录(分8表) | 字段 | 用途 | |------|------| | user_id | 角色ID | | chapter_id | 章节ID(关联 MySQL vala_game_chapter.id) | | chapter_unique_id | 完课唯一标识 | | level | 课程级别 (如 "A2") | | play_status | 1=完成 | | created_at | 创建时间 (tz-aware) | | updated_at | 更新时间 (tz-aware) | ## 单元计算规则 Chapter → Level/Unit/Lesson 映射通过 `vala_game_chapter` + `vala_game_season_package` 计算: - 每 5 个连续 lesson_type=1 的章节组成一个 Unit - season_of_quarter=0 全部属 Unit 0 - season_of_quarter≥1 时基础 Unit = 1+12×(s-1),再叠加组内偏移 ## 渠道编码映射 | 编码 | 渠道 | 编码 | 渠道 | |------|------|------|------| | 11 | 苹果 | 12 | 华为 | | 13 | 小米 | 14 | 荣耀 | | 15 | 应用宝 | 17 | 魅族 | | 18 | VIVO | 19 | OPPO | | 21 | 学而思 | 22 | 讯飞 | | 23 | 步步高 | 24 | 作业帮 | | 25 | 小度 | 26 | 希沃 | | 27 | 京东方 | 41 | 官网 | | 71 | 小程序 | 其他 | 站外 |