|
|
@@ -4,8 +4,7 @@
|
|
|
|
|
|
| 表名 | 说明 |
|
|
|
|------|------|
|
|
|
-| activity_config | 活动基础配置表,存储活动的基本信息 |
|
|
|
-| activity_reward | 活动奖励配置表,定义活动的奖励内容 |
|
|
|
+| activity_config | 活动基础配置表,存储活动的基本信息和奖励 |
|
|
|
| activity_participation | 活动参与记录表,记录用户参与活动的情况 |
|
|
|
| user_activity_data | 用户活动数据表,存储用户在活动中的进度 |
|
|
|
| activity_condition | 活动条件表,定义活动的参与和完成条件 |
|
|
|
@@ -26,26 +25,13 @@
|
|
|
| display_order | int | 显示顺序,数值越大越靠前 |
|
|
|
| icon | varchar(255) | 活动图标URL |
|
|
|
| banner | varchar(255) | 活动横幅URL |
|
|
|
+| reward_group_id | int | 奖励组ID(关联game_reward_groups表) |
|
|
|
+| reward_group_code | varchar(50) | 奖励组编码(关联game_reward_groups表的code字段) |
|
|
|
| config_params | json | 活动特定配置参数,JSON格式 |
|
|
|
| created_at | timestamp | 创建时间 |
|
|
|
| updated_at | timestamp | 更新时间 |
|
|
|
|
|
|
-### 2.2 activity_reward (活动奖励配置表)
|
|
|
-
|
|
|
-| 字段 | 类型 | 说明 |
|
|
|
-|------|------|------|
|
|
|
-| id | bigint | 主键 |
|
|
|
-| activity_id | bigint | 关联活动ID |
|
|
|
-| reward_type | tinyint | 奖励类型(1:物品, 2:货币, 3:经验) |
|
|
|
-| item_id | int | 道具ID |
|
|
|
-| item_count | int | 道具数量 |
|
|
|
-| probability | decimal(5,2) | 获得概率(随机发放时使用) |
|
|
|
-| reward_group | varchar(50) | 奖励组标识(用于分组奖励) |
|
|
|
-| display_order | int | 显示顺序 |
|
|
|
-| created_at | timestamp | 创建时间 |
|
|
|
-| updated_at | timestamp | 更新时间 |
|
|
|
-
|
|
|
-### 2.3 activity_participation (活动参与记录表)
|
|
|
+### 2.2 activity_participation (活动参与记录表)
|
|
|
|
|
|
| 字段 | 类型 | 说明 |
|
|
|
|------|------|------|
|
|
|
@@ -59,7 +45,7 @@
|
|
|
| created_at | timestamp | 创建时间 |
|
|
|
| updated_at | timestamp | 更新时间 |
|
|
|
|
|
|
-### 2.4 user_activity_data (用户活动数据表)
|
|
|
+### 2.3 user_activity_data (用户活动数据表)
|
|
|
|
|
|
| 字段 | 类型 | 说明 |
|
|
|
|------|------|------|
|
|
|
@@ -72,7 +58,7 @@
|
|
|
| created_at | timestamp | 创建时间 |
|
|
|
| updated_at | timestamp | 更新时间 |
|
|
|
|
|
|
-### 2.5 activity_condition (活动条件表)
|
|
|
+### 2.4 activity_condition (活动条件表)
|
|
|
|
|
|
| 字段 | 类型 | 说明 |
|
|
|
|------|------|------|
|
|
|
@@ -92,7 +78,6 @@
|
|
|
|
|
|
```mermaid
|
|
|
erDiagram
|
|
|
- activity_config ||--o{ activity_reward : "1:N"
|
|
|
activity_config ||--o{ activity_participation : "1:N"
|
|
|
activity_config ||--o{ user_activity_data : "1:N"
|
|
|
activity_config ||--o{ activity_condition : "1:N"
|
|
|
@@ -105,25 +90,22 @@ erDiagram
|
|
|
|
|
|
### 4.1 activity_config 表索引
|
|
|
- 主键索引:`id`
|
|
|
-- 普通索引:`type`, `status`
|
|
|
+- 普通索引:`type`, `status`, `reward_group_id`, `reward_group_code`
|
|
|
- 复合索引:`(start_time, end_time)`, `(status, display_order)`
|
|
|
|
|
|
-### 4.2 activity_reward 表索引
|
|
|
-- 主键索引:`id`
|
|
|
-- 外键索引:`activity_id`
|
|
|
-- 复合索引:`(activity_id, reward_group)`, `(activity_id, display_order)`
|
|
|
|
|
|
-### 4.3 activity_participation 表索引
|
|
|
+
|
|
|
+### 4.2 activity_participation 表索引
|
|
|
- 主键索引:`id`
|
|
|
- 外键索引:`activity_id`, `user_id`
|
|
|
- 复合索引:`(user_id, activity_id)`, `(activity_id, reward_status)`
|
|
|
|
|
|
-### 4.4 user_activity_data 表索引
|
|
|
+### 4.3 user_activity_data 表索引
|
|
|
- 主键索引:`id`
|
|
|
- 外键索引:`activity_id`, `user_id`
|
|
|
- 复合索引:`(user_id, activity_id)`, `(activity_id, progress)`
|
|
|
|
|
|
-### 4.5 activity_condition 表索引
|
|
|
+### 4.4 activity_condition 表索引
|
|
|
- 主键索引:`id`
|
|
|
- 外键索引:`activity_id`
|
|
|
- 复合索引:`(activity_id, condition_type)`, `(activity_id, is_participation_condition)`
|
|
|
@@ -145,33 +127,21 @@ CREATE TABLE `activity_config` (
|
|
|
`display_order` int DEFAULT '0' COMMENT '显示顺序',
|
|
|
`icon` varchar(255) DEFAULT NULL COMMENT '活动图标URL',
|
|
|
`banner` varchar(255) DEFAULT NULL COMMENT '活动横幅URL',
|
|
|
+ `reward_group_id` int DEFAULT NULL COMMENT '奖励组ID(关联game_reward_groups表)',
|
|
|
+ `reward_group_code` varchar(50) DEFAULT NULL COMMENT '奖励组编码(关联game_reward_groups表的code字段)',
|
|
|
`config_params` json DEFAULT NULL COMMENT '活动特定配置参数',
|
|
|
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_type` (`type`),
|
|
|
KEY `idx_status` (`status`),
|
|
|
+ KEY `idx_reward_group_id` (`reward_group_id`),
|
|
|
+ KEY `idx_reward_group_code` (`reward_group_code`),
|
|
|
KEY `idx_time` (`start_time`, `end_time`),
|
|
|
KEY `idx_status_order` (`status`, `display_order`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='活动基础配置表';
|
|
|
|
|
|
--- 创建活动奖励配置表
|
|
|
-CREATE TABLE `activity_reward` (
|
|
|
- `id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
- `activity_id` bigint NOT NULL COMMENT '关联活动ID',
|
|
|
- `reward_type` tinyint NOT NULL COMMENT '奖励类型',
|
|
|
- `item_id` int NOT NULL COMMENT '道具ID',
|
|
|
- `item_count` int NOT NULL COMMENT '道具数量',
|
|
|
- `probability` decimal(5,2) DEFAULT '100.00' COMMENT '获得概率',
|
|
|
- `reward_group` varchar(50) DEFAULT NULL COMMENT '奖励组标识',
|
|
|
- `display_order` int DEFAULT '0' COMMENT '显示顺序',
|
|
|
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- PRIMARY KEY (`id`),
|
|
|
- KEY `idx_activity_id` (`activity_id`),
|
|
|
- KEY `idx_activity_group` (`activity_id`, `reward_group`),
|
|
|
- KEY `idx_activity_order` (`activity_id`, `display_order`)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='活动奖励配置表';
|
|
|
+
|
|
|
|
|
|
-- 创建活动参与记录表
|
|
|
CREATE TABLE `activity_participation` (
|