guild_member 公会成员表
基于 AzerothCore 官方数据库 · Characters 库 · 存储公会成员基本信息
表概述
guild_member 表存储每个公会成员的基本信息,包括成员角色、公会等级和备注。
核心概念:一个角色只能属于一个公会(guid唯一约束)。此表通过 guildid 关联到 guild 表,通过 rank 关联到 guild_rank 表确定权限。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guildid | INT UNSIGNED | NOT NULL | 公会ID → guild.guildid |
| guid | INT UNSIGNED | NOT NULL | 角色GUID(唯一索引)→ characters.guid |
| rank | TINYINT UNSIGNED | NOT NULL | 公会等级ID → guild_rank.rid |
| pnote | VARCHAR(31) | '' | 公共备注(所有成员可见) |
| offnote | VARCHAR(31) | '' | 官员备注(仅官员可见) |
重要字段详解
rank - 公会等级
详细说明:决定成员在公会中的权限级别。常用等级
- 0 = 会长(每个公会唯一)
- 1 = 副会长/官员
- 2~ = 根据公会自定义等级
- 权限由 guild_rank 表的 rights 字段控制
pnote / offnote - 备注
详细说明:两种备注有不同的可见性。
- pnote (Public Note):所有公会成员可见,通常记录角色主/副天赋
- offnote (Officer Note):仅官员和会长可见,用于记录隐私信息
SQL示例:查看公会成员 →
SELECT gm.*, c.name FROM guild_member gm JOIN characters c ON gm.guid=c.guid WHERE gm.guildid=1;SQL查询示例
-- 统计各公会成员数
SELECT guildid, COUNT(*) AS member_count
FROM guild_member
GROUP BY guildid
ORDER BY member_count DESC;-- 查看公会所有官员(rank=1)
SELECT gm.guid, c.name, gm.pnote
FROM guild_member gm
JOIN characters c ON gm.guid = c.guid
WHERE gm.guildid = 1 AND gm.rank = 1;-- 将角色移出公会
DELETE FROM guild_member WHERE guid = 角色GUID;常见问题
Q: 会长辞职后公会怎么办?
会长(rank=0)是唯一存在。如果没有会长,公会无法正常运作。建议将其他成员提升为会长后再退会。
Q: 官员备注能存储多少字符?
VARCHAR(31) 限制为31个字符。如需更多信息,建议使用外部工具或公会网站记录。