📋 表概述

character_declinedname 表用于支持俄语客户端中角色名称的语法变格(declension)。俄语等斯拉夫语系中,名词在不同语法格中需要变化词尾。该表存储了角色的五种变格形式,用于在游戏文本中正确显示角色名。

📊 表结构

字段名数据类型默认值说明
guidint UNSIGNED0角色全局唯一标识
genitivevarchar(15)''属格(二格):"谁的"/"什么的"
dativevarchar(15)''与格(三格):"给谁"/"向什么"
accusativevarchar(15)''宾格(四格):动作的直接对象
instrumentalvarchar(15)''工具格(五格):"用什么"/"与谁一起"
prepositionalvarchar(15)''前置格(六格):"关于谁"/"在哪里"

🔍 重要字段详解

俄语语法六格体系

俄语名词根据在句子中的作用变化词尾,共有六种格。例如角色名 "Иван" 在不同上下文中可能变为 "Ивана"(属格)、"Ивану"(与格)等。没有正确变格的文本在俄语中读起来不自然。

非俄语客户端的处理

对于中文、英文等非变格语言的客户端,这五个字段通常为空字符串。该表仅在俄语客户端(ruRU)中有实际用途。其他语系的服务器可以不使用此表。

💡 SQL查询示例

查询某个角色的名称变格数据

SELECT c.name AS 原名, dn.genitive, dn.dative,
       dn.accusative, dn.instrumental, dn.prepositional
FROM character_declinedname dn
JOIN characters c ON dn.guid = c.guid
WHERE dn.guid = 12345;

批量检查有角色名但无变格数据的记录

SELECT c.guid, c.name
FROM characters c
LEFT JOIN character_declinedname dn ON c.guid = dn.guid
WHERE dn.guid IS NULL;

❓ 常见问题

Q: 中文服务器需要这个表吗?

不需要。中文没有语法变格的概念。该表主要为俄语客户端设计。在中英文服务器上,该表可以为空或不存在。

Q: 如何为一个已存在的角色添加变格数据?

使用 INSERT 语句添加:INSERT INTO character_declinedname (guid, genitive, dative, accusative, instrumental, prepositional) VALUES (12345, '变格1', '变格2', '变格3', '变格4', '变格5');