|
@@ -16,7 +16,6 @@
|
|
|
10. **farm_land_upgrade_configs** - 土地升级配置表
|
|
10. **farm_land_upgrade_configs** - 土地升级配置表
|
|
|
11. **farm_harvest_logs** - 收获记录表
|
|
11. **farm_harvest_logs** - 收获记录表
|
|
|
12. **farm_upgrade_logs** - 升级记录表
|
|
12. **farm_upgrade_logs** - 升级记录表
|
|
|
-16. **farm_team_profits** - 团队收益记录表
|
|
|
|
|
|
|
|
|
|
## 2. 表结构详细设计
|
|
## 2. 表结构详细设计
|
|
|
|
|
|
|
@@ -273,80 +272,29 @@ CREATE TABLE `farm_upgrade_logs` (
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='升级记录表';
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='升级记录表';
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### 2.12 用户推荐关系表 (farm_user_referrals)
|
|
|
|
|
|
|
|
|
|
-存储用户之间的推荐关系,包括直推和间推关系。
|
|
|
|
|
-
|
|
|
|
|
-```sql
|
|
|
|
|
-CREATE TABLE `farm_user_referrals` (
|
|
|
|
|
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
|
|
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
|
|
|
|
- `referrer_id` bigint(20) NOT NULL COMMENT '推荐人ID',
|
|
|
|
|
- `level` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '推荐层级:1直推,2间推',
|
|
|
|
|
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
|
|
- PRIMARY KEY (`id`),
|
|
|
|
|
- UNIQUE KEY `idx_user_referrer` (`user_id`,`referrer_id`),
|
|
|
|
|
- KEY `idx_referrer_id` (`referrer_id`),
|
|
|
|
|
- KEY `idx_user_id` (`user_id`)
|
|
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户推荐关系表';
|
|
|
|
|
-```
|
|
|
|
|
-
|
|
|
|
|
-### 2.13 达人等级表 (farm_user_talents)
|
|
|
|
|
-
|
|
|
|
|
-存储用户的达人等级信息,包括直推人数和团队总人数。
|
|
|
|
|
-
|
|
|
|
|
-**注意:** 达人等级表已移至Team模块,表名为`team_user_talents`。
|
|
|
|
|
-
|
|
|
|
|
-### 2.14 团队收益记录表 (farm_team_profits)
|
|
|
|
|
-
|
|
|
|
|
-记录团队成员收获作物时产生的分成收益。
|
|
|
|
|
-
|
|
|
|
|
-```sql
|
|
|
|
|
-CREATE TABLE `farm_team_profits` (
|
|
|
|
|
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
|
|
- `user_id` bigint(20) NOT NULL COMMENT '获得收益的用户ID',
|
|
|
|
|
- `team_member_id` bigint(20) NOT NULL COMMENT '团队成员ID',
|
|
|
|
|
- `harvest_id` bigint(20) NOT NULL COMMENT '收获记录ID',
|
|
|
|
|
- `profit_amount` int(11) NOT NULL COMMENT '分成收益数量',
|
|
|
|
|
- `profit_rate` decimal(5,4) NOT NULL COMMENT '分成比例',
|
|
|
|
|
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
- PRIMARY KEY (`id`),
|
|
|
|
|
- KEY `idx_user_id` (`user_id`),
|
|
|
|
|
- KEY `idx_team_member_id` (`team_member_id`),
|
|
|
|
|
- KEY `idx_harvest_id` (`harvest_id`)
|
|
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队收益记录表';
|
|
|
|
|
-```
|
|
|
|
|
|
|
|
|
|
## 3. 数据关系
|
|
## 3. 数据关系
|
|
|
|
|
|
|
|
### 3.1 主要关系图
|
|
### 3.1 主要关系图
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
- farm_user_referrals
|
|
|
|
|
- ^
|
|
|
|
|
- |
|
|
|
|
|
- |
|
|
|
|
|
-farm_users (1) ------ (N) farm_land_users |
|
|
|
|
|
- | | |
|
|
|
|
|
- | | |
|
|
|
|
|
- | | |
|
|
|
|
|
- | | |
|
|
|
|
|
- v v |
|
|
|
|
|
-farm_house_configs farm_crops |
|
|
|
|
|
- | |
|
|
|
|
|
- | |
|
|
|
|
|
- | |
|
|
|
|
|
- v |
|
|
|
|
|
- farm_seeds |
|
|
|
|
|
- | |
|
|
|
|
|
- | |
|
|
|
|
|
- v |
|
|
|
|
|
- farm_harvest_logs -----+
|
|
|
|
|
|
|
+farm_users (1) ------ (N) farm_land_users
|
|
|
|
|
+ | |
|
|
|
|
|
+ | |
|
|
|
|
|
+ | |
|
|
|
|
|
+ | |
|
|
|
|
|
+ v v
|
|
|
|
|
+farm_house_configs farm_crops
|
|
|
|
|
+ |
|
|
|
|
|
+ |
|
|
|
|
|
+ |
|
|
|
|
|
+ v
|
|
|
|
|
+ farm_seeds
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
v
|
|
v
|
|
|
- farm_team_profits
|
|
|
|
|
|
|
+ farm_harvest_logs
|
|
|
|
|
|
|
|
farm_land_types <---- farm_land_users
|
|
farm_land_types <---- farm_land_users
|
|
|
^
|
|
^
|
|
@@ -363,11 +311,8 @@ farm_land_upgrade_configs
|
|
|
4. **种子与产出**:一个种子可以有多种可能的产出(1:N)
|
|
4. **种子与产出**:一个种子可以有多种可能的产出(1:N)
|
|
|
5. **用户与房屋**:一个用户拥有一个房屋(1:1)
|
|
5. **用户与房屋**:一个用户拥有一个房屋(1:1)
|
|
|
6. **房屋与配置**:房屋等级对应配置表中的等级(N:1)
|
|
6. **房屋与配置**:房屋等级对应配置表中的等级(N:1)
|
|
|
-7. **用户与推荐关系**:一个用户可以有多个推荐人和被推荐人(M:N)
|
|
|
|
|
-8. **用户与达人等级**:一个用户有一个达人等级记录(1:1)
|
|
|
|
|
-9. **收获与团队收益**:一次收获可以产生多条团队收益记录(1:N)
|
|
|
|
|
-10. **土地与土地类型**:土地表中的 land_type 字段关联到 farm_land_types 表的 id 字段(N:1)
|
|
|
|
|
-11. **土地升级配置**:farm_land_upgrade_configs 表通过 from_type_id 和 to_type_id 字段关联到 farm_land_types 表(M:N)
|
|
|
|
|
|
|
+7. **土地与土地类型**:土地表中的 land_type 字段关联到 farm_land_types 表的 id 字段(N:1)
|
|
|
|
|
+8. **土地升级配置**:farm_land_upgrade_configs 表通过 from_type_id 和 to_type_id 字段关联到 farm_land_types 表(M:N)
|
|
|
|
|
|
|
|
## 4. 索引设计
|
|
## 4. 索引设计
|
|
|
|
|
|
|
@@ -383,8 +328,6 @@ farm_land_upgrade_configs
|
|
|
- `farm_house_configs`: `level`(确保等级唯一)
|
|
- `farm_house_configs`: `level`(确保等级唯一)
|
|
|
- `farm_land_types`: `code`(确保土地类型编码唯一)
|
|
- `farm_land_types`: `code`(确保土地类型编码唯一)
|
|
|
- `farm_land_upgrade_configs`: `from_type_id, to_type_id`(确保升级路径唯一)
|
|
- `farm_land_upgrade_configs`: `from_type_id, to_type_id`(确保升级路径唯一)
|
|
|
-- `farm_user_referrals`: `user_id, referrer_id`(确保推荐关系不重复)
|
|
|
|
|
-- `farm_user_talents`: `user_id`(确保每个用户只有一条达人记录)
|
|
|
|
|
|
|
|
|
|
### 4.3 普通索引
|
|
### 4.3 普通索引
|
|
|
|
|
|