表概述
groups 表记录了游戏中所有队伍的基本信息。无论是5人小队还是40人团队,每个队伍在这里都有一条记录。该表存储了队伍的核心配置信息,如队长、分配方式、难度设定等。
- 队伍基础信息
- 分配模式配置
- 副本难度设定
- 团队图标管理
主键为 guid,是队伍的唯一标识。通过 group_member 表关联队伍中的所有成员。
表结构
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| guid | int UNSIGNED | NOT NULL | 队伍GUID(主键) |
| leaderGuid | int UNSIGNED | NOT NULL | 队长角色GUID |
| lootMethod | tinyint UNSIGNED | NOT NULL | 分配方式(0=自由,1=轮流,2=队长,3=队伍,4=需求) |
| looterGuid | int UNSIGNED | NOT NULL | 分配者角色GUID(队长分配时有效) |
| lootThreshold | tinyint UNSIGNED | NOT NULL | 分配阈值(物品品质等级门槛) |
| icon1 | bigint UNSIGNED | NOT NULL | 团队图标1(星星标记) |
| icon2 | bigint UNSIGNED | NOT NULL | 团队图标2(大饼标记) |
| icon3 | bigint UNSIGNED | NOT NULL | 团队图标3(菱形标记) |
| icon4 | bigint UNSIGNED | NOT NULL | 团队图标4(三角标记) |
| icon5 | bigint UNSIGNED | NOT NULL | 团队图标5(月亮标记) |
| icon6 | bigint UNSIGNED | NOT NULL | 团队图标6(方块标记) |
| icon7 | bigint UNSIGNED | NOT NULL | 团队图标7(叉叉标记) |
| icon8 | bigint UNSIGNED | NOT NULL | 团队图标8(骷髅标记) |
| groupType | tinyint UNSIGNED | NOT NULL | 队伍类型(0=普通队伍,2=团队) |
| difficulty | tinyint UNSIGNED | 0 | 5人副本难度(0=普通,1=英雄) |
| raidDifficulty | tinyint UNSIGNED | 0 | 团队副本难度(0=10普,1=25普,2=10H,3=25H) |
| masterLooterGuid | int UNSIGNED | NOT NULL | 主分配者角色GUID(队长分配模式下的实际分配者) |
实际案例
案例1:查询所有当前活跃的团队
SELECT
g.guid, g.leaderGuid, c.name AS leader_name,
g.groupType, g.difficulty, g.raidDifficulty,
COUNT(gm.memberGuid) AS member_count
FROM groups g
JOIN characters c ON c.guid = g.leaderGuid
JOIN group_member gm ON gm.guid = g.guid
WHERE g.groupType = 2
GROUP BY g.guid
ORDER BY member_count DESC;案例2:查询指定角色所在队伍的分配设置
SELECT
g.guid AS group_id,
g.lootMethod,
CASE g.lootMethod
WHEN 0 THEN '自由拾取'
WHEN 1 THEN '轮流拾取'
WHEN 2 THEN '队长分配'
WHEN 3 THEN '队伍分配'
WHEN 4 THEN '需求优先'
END AS loot_method_name,
g.lootThreshold, g.groupType,
g.difficulty, g.raidDifficulty
FROM groups g
JOIN group_member gm ON gm.guid = g.guid
WHERE gm.memberGuid = 100;案例3:统计各难度下的活跃团队数量
SELECT
raidDifficulty,
CASE raidDifficulty
WHEN 0 THEN '10人普通'
WHEN 1 THEN '25人普通'
WHEN 2 THEN '10人英雄'
WHEN 3 THEN '25人英雄'
END AS difficulty_name,
COUNT(*) AS team_count
FROM groups
WHERE groupType = 2
GROUP BY raidDifficulty
ORDER BY raidDifficulty;常见问题
Q1: groups 表和 group_member 表的关系是什么?
groups 表存储队伍级别的配置信息,group_member 表存储该队伍中每个成员的详细数据。两个表通过
guid(队伍ID)字段关联。Q2: lootMethod 各取值的具体含义是什么?
0=自由拾取,1=轮流拾取,2=队长分配(由looterGuid指定的人分配),3=队伍分配(全体成员roll点),4=需求优先(按职业需求优先分配)。Q3: icon1~icon8 字段如何使用?
这8个字段对应团队标记,分别是星星、大饼、菱形、三角、月亮、方块、叉叉、骷髅。每个字段存储被标记单位的GUID。