邮件系统表 (mail)

表格概述

此表存储游戏内的邮件系统数据。

主要作用

  • 管理游戏内邮件发送和接收
  • 存储邮件附件信息
  • 记录邮件状态(已读/未读)

关联表

字段详细说明

字段名 类型 说明 默认值 示例
id int UNSIGNED 邮件唯一标识符 NOT NULL AUTO_INCREMENT 1001
messageType tinyint UNSIGNED 邮件类型(0=普通,1=拍卖,2=GM邮件) NOT NULL DEFAULT 0 0
stationery tinyint 邮件信纸样式 NOT NULL DEFAULT 41 41
mailTemplateId smallint UNSIGNED 邮件模板ID NOT NULL DEFAULT 0 0
sender int UNSIGNED 发送者角色guid或特殊标识 NOT NULL DEFAULT 0 12345
receiver int UNSIGNED 接收者角色guid NOT NULL DEFAULT 0 54321
subject varchar(255) 邮件主题 '' "拍卖成功"
body text 邮件正文 NULL "您拍卖的物品已售出"
has_items tinyint UNSIGNED 是否有附件(0=无,1=有) NOT NULL DEFAULT 0 1
expire_time int UNSIGNED 邮件过期时间(Unix时间戳) NOT NULL DEFAULT 0 1672502400
deliver_time int UNSIGNED 邮件发送时间(Unix时间戳) NOT NULL DEFAULT 0 1672416000
money int UNSIGNED 邮件附带金币(铜币) NOT NULL DEFAULT 0 10000
cod int UNSIGNED COD金额(货到付款) NOT NULL DEFAULT 0 0
checked tinyint UNSIGNED 邮件状态(0=未读,1=已读) NOT NULL DEFAULT 0 0

SQL使用示例

-- 查询角色未读邮件
SELECT * FROM mail 
WHERE receiver = 54321 AND checked = 0;

-- 发送系统邮件
INSERT INTO mail (messageType, sender, receiver, subject, body, money) 
VALUES (2, 0, 54321, '系统通知', '感谢您的支持', 10000);

-- 删除过期邮件
DELETE FROM mail 
WHERE expire_time < UNIX_TIMESTAMP();