ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

三层数据模式:外模式、模式与内模式如何映射到游戏服务端的存储分层

三层数据模式:外模式、模式与内模式如何映射到游戏服务端的存储分层

一、从一个具体动作切入:打开背包时到底发生了什么

你开发了一款游戏。玩家点开背包,界面上显示「治疗药水 × 3」「铁矿石 × 10」。

这个瞬间看起来简单,但它背后同时存在三个完全不同的问题:

  1. 界面该显示哪些字段、叫什么名字、按什么顺序排?这是「给谁看」的问题。
  2. 全服所有玩家的物品,应该记录成什么结构、遵守什么规则?这是「数据整体长什么样」的问题。
  3. 这一千万条记录,物理上存在哪些文件和数据页里,用什么索引找?这是「怎么存、怎么找」的问题。

这三个问题层次完全不同,而且变化频率完全不同:第一个问题会随着版本迭代频繁变,第二个问题相对稳定,第三个问题几乎每次容量扩张都要重做一遍。

1975 年 ANSI/SPARC 报告提出的三层数据模式,就是为这三个问题各准备了一个「家」。


二、三层之间最关键的区分:视角,不是副本

在展开之前,必须先破除一个极其常见的误解:

不是有三份数据,而是从三个角度看同一套数据。

三层之间不是「复制三份」,而是「三套描述 + 两组映射」。数据只有一份,描述它的方式有三层:

┌─────────────────────────────────────────────┐ │ 外模式 (External Schema)
返回列表