表概述

petition 表存储公会创建申请(请愿书)数据。在WoW中创建公会需要购买请愿书并收集足够签名。

核心概念:创建公会时,发起人(ownerguid)购买请愿书并获得 petitionguid。需要收集指定数量的其他玩家签名(petition_sign)后才能正式创建公会。

表结构

字段名数据类型默认值说明
ownerguidINT UNSIGNEDNOT NULL请愿书发起人GUID → characters.guid
petitionguidINT UNSIGNEDNULL请愿书物品GUID → item_instance.guid
nameVARCHAR(24)NOT NULL拟创建的公会名称
typeTINYINT UNSIGNED0请愿类型(0=公会 其他值=竞技场队伍)

重要字段详解

ownerguid / type - 联合主键

详细说明:ownerguid + type 组成联合主键,确保每个玩家每种请愿类型只能有一个进行中的申请。
  • 公会请愿(type=0):每个玩家只能有一个进行中的公会请愿
  • 竞技场请愿(type=2,3,5):对应2v2、3v3、5v5竞技场队伍

name - 公会名称

详细说明:玩家在创建申请时指定的公会名称。
  • 需通过命名规范检查(无违规词汇、长度限制等)
  • 不能与已存在的公会名重复
SQL示例:查看进行中的请愿 → SELECT * FROM petition WHERE ownerguid=1;

SQL查询示例

-- 查看所有进行中的公会请愿 SELECT p.ownerguid, c.name AS player_name, p.name AS guild_name FROM petition p JOIN characters c ON p.ownerguid = c.guid WHERE p.type = 0;
-- 删除某玩家的请愿书(取消公会创建) DELETE FROM petition WHERE ownerguid = 角色GUID AND type = 0;

常见问题

Q: 创建公会需要多少签名?

默认需要4个其他玩家的签名(共5人,含发起人)。此配置在 worldserver.conf 的 MinPetitionSigns 参数中设置。

Q: 请愿书过期了会怎样?

请愿书物品有使用期限,过期后 petition 和 petition_sign 中的相关数据会被清理。需要重新购买请愿书开始新申请。