表概述

arena_team 表用于存储所有竞技场战队的核心信息。每个竞技场战队在这里有一条记录,包含战队的名称、队长、类型(2v2/3v3/5v5)、等级分(ELO)、赛季战绩以及战队徽章外观等数据。

主键为 arenaTeamId,是战队的唯一标识。type 字段区分战队规模:2=2v2, 3=3v3, 5=5v5。

表结构

字段名类型默认值说明
arenaTeamIdint UNSIGNED0竞技场战队ID(主键)
namevarchar(24)NOT NULL战队名称
captainGuidint UNSIGNED0队长角色GUID
typetinyint UNSIGNED0战队类型(2=2v2, 3=3v3, 5=5v5)
ratingsmallint UNSIGNED0当前战队等级分
seasonGamessmallint UNSIGNED0本赛季总场次
seasonWinssmallint UNSIGNED0本赛季胜场数
weekGamessmallint UNSIGNED0本周总场次
weekWinssmallint UNSIGNED0本周胜场数
rankint UNSIGNED0战队排名
backgroundColorint UNSIGNED0战队背景颜色
emblemStyletinyint UNSIGNED0徽章样式ID
emblemColorint UNSIGNED0徽章颜色
borderStyletinyint UNSIGNED0边框样式ID
borderColorint UNSIGNED0边框颜色

实际案例

案例1:查询指定战队的战绩信息

-- 查询战队ID为1的战队信息,包含胜率计算 SELECT arenaTeamId, name, type, CASE type WHEN 2 THEN '2v2' WHEN 3 THEN '3v3' WHEN 5 THEN '5v5' END AS type_name, rating, seasonGames, seasonWins, ROUND(seasonWins / seasonGames * 100, 1) AS win_rate, weekGames, weekWins, rank FROM arena_team WHERE arenaTeamId = 1;

案例2:查询等级分最高的前10个战队

SELECT arenaTeamId, name, type, rating, seasonGames, seasonWins, rank FROM arena_team ORDER BY rating DESC LIMIT 10;

案例3:按战队类型统计各分段的战队数量

SELECT type, COUNT(*) AS total_teams, SUM(CASE WHEN rating >= 2000 THEN 1 ELSE 0 END) AS high_rating, SUM(CASE WHEN rating >= 1500 AND rating < 2000 THEN 1 ELSE 0 END) AS mid_rating, SUM(CASE WHEN rating < 1500 THEN 1 ELSE 0 END) AS low_rating FROM arena_team GROUP BY type;

常见问题

Q1: arena_team 表的 type 字段取值含义是什么?
type 字段表示竞技场战队的人数规模:2 = 2v2双人战队,3 = 3v3三人战队,5 = 5v5五人战队。
Q2: rating 和 rank 有什么区别?
rating 是战队的实时ELO等级分,根据比赛胜负实时变化;rank 是本周/本阶段结束后计算的战队排名,通常每周刷新一次。
Q3: 如何重置所有战队的每周战绩?
赛季结算时需要重置每周数据:UPDATE arena_team SET weekGames = 0, weekWins = 0;。同时还需要在 arena_team_member 表中重置成员的周战绩。