任务定义相关表
任务完成相关表
日志记录相关表
| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| name | varchar(100) | 否 | - | 任务名称 |
| description | text | 是 | NULL | 任务描述 |
| task_type | varchar(50) | 否 | - | 任务类型 |
| status | tinyint | 否 | 1 | 状态(0禁用,1启用) |
| start_time | timestamp | 是 | NULL | 开始时间 |
| end_time | timestamp | 是 | NULL | 结束时间 |
| repeat_type | varchar(20) | 否 | 'none' | 重复类型(none/daily/weekly/monthly) |
| max_completions | int | 否 | 1 | 最大完成次数 |
| sort_order | int | 否 | 0 | 排序权重 |
| created_at | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | 否 | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
索引:
id)idx_type (task_type)idx_status (status)idx_time (start_time, end_time)| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| task_id | int | 否 | - | 关联任务ID |
| condition_type | varchar(50) | 否 | - | 条件类型 |
| target_value | varchar(255) | 否 | - | 目标值 |
| operator | varchar(20) | 否 | '>=' | 比较运算符 |
| description | varchar(255) | 是 | NULL | 条件描述 |
| sort_order | int | 否 | 0 | 排序权重 |
| created_at | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
索引:
id)idx_task (task_id)idx_type (condition_type)| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| user_id | int | 否 | - | 用户ID |
| task_id | int | 否 | - | 任务ID |
| progress | json | 否 | - | 当前进度 |
| completions | int | 否 | 0 | 已完成次数 |
| last_completed_at | timestamp | 是 | NULL | 最后完成时间 |
| next_reset_at | timestamp | 是 | NULL | 下次重置时间 |
| status | tinyint | 否 | 0 | 状态(0进行中,1已完成) |
| created_at | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | timestamp | 否 | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
索引:
id)uniq_user_task (user_id, task_id)idx_status (status)idx_reset (next_reset_at)设计目的:定义任务完成后可以获得的奖励内容,支持多种奖励类型和数量配置
| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| task_id | int | 否 | - | 关联任务ID |
| reward_type | varchar(50) | 否 | - | 奖励类型(item:道具, currency:货币, exp:经验等) |
| reward_value | varchar(255) | 否 | - | 奖励值(道具ID/货币类型/经验类型等) |
| reward_amount | int | 否 | 1 | 奖励数量 |
| description | varchar(255) | 是 | NULL | 奖励描述 |
| sort_order | int | 否 | 0 | 排序权重 |
| created_at | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
索引:
id)idx_task (task_id)idx_type (reward_type)使用示例:
| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| user_id | int | 否 | - | 用户ID |
| task_id | int | 否 | - | 任务ID |
| user_task_id | int | 否 | - | 用户任务ID |
| completed_at | timestamp | 否 | - | 完成时间 |
| conditions | json | 否 | - | 完成时的条件状态 |
| ip_address | varchar(45) | 是 | NULL | IP地址 |
| device_info | varchar(255) | 是 | NULL | 设备信息 |
| created_at | timestamp | 是 | NULL | 创建时间 |
索引:
id)idx_user (user_id)idx_task (task_id)idx_completed (completed_at)| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| user_id | int | 否 | - | 用户ID |
| task_id | int | 否 | - | 任务ID |
| user_task_id | int | 否 | - | 用户任务ID |
| rewards | json | 否 | - | 发放的奖励 |
| rewarded_at | timestamp | 否 | - | 发放时间 |
| operator_id | int | 是 | NULL | 操作者ID(系统为0) |
| ip_address | varchar(45) | 是 | NULL | IP地址 |
| created_at | timestamp | 是 | NULL | 创建时间 |
索引:
id)idx_user (user_id)idx_task (task_id)idx_rewarded (rewarded_at)| 字段名 | 类型 | 允许空 | 默认值 | 说明 |
|---|---|---|---|---|
| id | int | 否 | 自增 | 主键 |
| user_id | int | 否 | - | 用户ID |
| task_id | int | 否 | - | 任务ID |
| user_task_id | int | 否 | - | 用户任务ID |
| reset_type | varchar(20) | 否 | - | 重置类型 |
| reset_time | timestamp | 否 | - | 重置时间 |
| old_progress | json | 是 | NULL | 重置前进度 |
| operator_id | int | 是 | NULL | 操作者ID |
| created_at | timestamp | 是 | NULL | 创建时间 |
索引:
id)idx_user_task (user_id, task_id)idx_reset_time (reset_time)task_tasks 1 --< task_conditions
task_tasks 1 --< task_rewards
task_tasks 1 --< task_user_tasks
task_user_tasks 1 --< task_completion_logs
task_user_tasks 1 --< task_reward_logs
task_user_tasks 1 --< task_reset_logs