petition 公会申请表
基于 AzerothCore 官方数据库 · Characters 库 · 存储公会创建申请表(请愿书)
表概述
petition 表存储公会创建申请(请愿书)数据。在WoW中创建公会需要购买请愿书并收集足够签名。
核心概念:创建公会时,发起人(ownerguid)购买请愿书并获得 petitionguid。需要收集指定数量的其他玩家签名(petition_sign)后才能正式创建公会。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| ownerguid | INT UNSIGNED | NOT NULL | 请愿书发起人GUID → characters.guid |
| petitionguid | INT UNSIGNED | NULL | 请愿书物品GUID → item_instance.guid |
| name | VARCHAR(24) | NOT NULL | 拟创建的公会名称 |
| type | TINYINT UNSIGNED | 0 | 请愿类型(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 中的相关数据会被清理。需要重新购买请愿书开始新申请。