📖 pvpstats_battlegrounds 表
战场统计总表,记录每一场战场的整体信息,包括胜方阵营和战场类型。
📋 表概述
pvpstats_battlegrounds 表以战场为单位记录每场战场的整体结果信息。每条记录对应一场完整的战场战斗,包含胜负方阵营和战场类型等数据。通过 id 关联 pvpstats_players 获取个人详细战况。
- 主键:(id) — 自增
- 引擎:InnoDB
- 关联表:pvpstats_players(通过 battleground_id)
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
id | bigint UNSIGNED | AUTO_INCREMENT | 战场记录唯一ID |
winner_faction | tinyint | (无) | 胜利方阵营:0=联盟, 1=部落, 2=平局 |
bracket_id | tinyint UNSIGNED | (无) | 等级分段:0=10-19, 1=20-29, ..., 9=80 |
type | tinyint UNSIGNED | (无) | 战场类型ID:1=AV, 2=WSG, 3=AB, 7=EOTS, 9=SOTA 等 |
date | datetime | (无) | 战场结束时间 |
🔍 重要字段详解
type — 战场类型
标识战场地图类型。常用值:1=奥特兰克山谷(AV)、2=战歌峡谷(WSG)、3=阿拉希盆地(AB)、7=风暴之眼(EOTS)、9=远古海滩(SOTA)、30=征服之岛(IOC)。
bracket_id — 等级分段
战场的等级分段系统。0 表示 10-19 级,数字加 1 后乘以 10 即为等级下限。用于区分不同等级的战场记录,便于按等级区间分析战场数据。
💡 SQL查询示例
统计各战场类型的联盟/部落胜率
SELECT type,
SUM(CASE WHEN winner_faction = 0 THEN 1 ELSE 0 END) AS 联盟胜场,
SUM(CASE WHEN winner_faction = 1 THEN 1 ELSE 0 END) AS 部落胜场,
COUNT(*) AS 总场次
FROM pvpstats_battlegrounds
GROUP BY type;
查询最近10场战场记录
SELECT id, winner_faction, bracket_id, type, date
FROM pvpstats_battlegrounds
ORDER BY id DESC
LIMIT 10;
❓ 常见问题
Q: 如何获取某场战场的详细玩家数据?
通过 pvpstats_players 表关联查询,battleground_id 对应本表的 id 字段:SELECT * FROM pvpstats_players WHERE battleground_id = 1234;
Q: 表中 type 对应的所有战场完整列表?
type 值是战场地图的 Map ID 或内部枚举值。1=AV, 2=WSG, 3=AB, 7=EOTS, 9=SOTA, 30=IOC, 32=冬拥湖。具体值取决于服务端 BattlemasterList.dbc 的映射。