三层数据模式:外模式、模式与内模式如何映射到游戏服务端的存储分层
一、从一个具体动作切入:打开背包时到底发生了什么
你开发了一款游戏。玩家点开背包,界面上显示「治疗药水 × 3」「铁矿石 × 10」。
这个瞬间看起来简单,但它背后同时存在三个完全不同的问题:
- 界面该显示哪些字段、叫什么名字、按什么顺序排?这是「给谁看」的问题。
- 全服所有玩家的物品,应该记录成什么结构、遵守什么规则?这是「数据整体长什么样」的问题。
- 这一千万条记录,物理上存在哪些文件和数据页里,用什么索引找?这是「怎么存、怎么找」的问题。
这三个问题层次完全不同,而且变化频率完全不同:第一个问题会随着版本迭代频繁变,第二个问题相对稳定,第三个问题几乎每次容量扩张都要重做一遍。
1975 年 ANSI/SPARC 报告提出的三层数据模式,就是为这三个问题各准备了一个「家」。
二、三层之间最关键的区分:视角,不是副本
在展开之前,必须先破除一个极其常见的误解:
不是有三份数据,而是从三个角度看同一套数据。
三层之间不是「复制三份」,而是「三套描述 + 两组映射」。数据只有一份,描述它的方式有三层:
┌─────────────────────────────────────────────┐ │ 外模式 (External Schema)相关新闻
WhisperX 开源语音识别与时间戳对齐详解:字幕、安装与流水线集成
WhisperX 开源语音识别与时间戳对齐详解:字幕、安装与流水线集成 WhisperX(仓库:GitHub 仓库 m-bain/whisperX)在 Whisper 系转录之上,补上音视频字幕生产最缺的一块:更稳的词级 / 短语级时间戳对齐&#x…
Agent 上下文漂移与 Reflexion 陷阱——用实验量化“加反思就好了“的成立边界
面试场景 面试官先让你讲 ReAct,然后追问:“ReAct 有什么工程缺陷?” 你说上下文漂移。他再问:“那加 Reflexion 是不是就解决了?” 如果你说"是",就掉进了陷阱。Reflexion 不是免费的,它有一个硬前提——可靠的评估器。 底层知识 ReAct 的核心缺陷:上下文…
SAP TechEd 2026 之后,ABAP 开发正在从 AI 辅助走向 Agentic AI
2026 年 10 月的 SAP TechEd Berlin,有一条关于 ABAP 的变化很容易被低估。 过去两三年,我们谈 ABAP 和生成式 AI,关注点大多还是 Copilot 式体验。开发人员写一句需求,AI 帮忙生成一段代码,解释一个 Class,补一段 ABAP Unit,或者告诉我们某个 CDS View 为什么激活失败…
最新新闻
音频降噪剪辑工具,音量裁剪一键处理
软件介绍 这次要聊的软件叫 ocenaudio,由巴西团队开发,是一款音频编辑工具。它支持多个平台,Windows、Mac、Linux 都能用,换系统的时候也不用愁找不到顺手的替代品。 版本与上手难度 Windows 这边既有安装版也有绿色版…
ASA原理与电子维修实战:18 ESD与保护网络:从接口保护到隐性损伤
第18章 ESD与保护网络:从接口保护到隐性损伤 ——理解瞬态电流路径,建立从模拟特征到功能验证的诊断方法 本章导读 在电子设备维修中,有一类故障非常特殊:设备没有明显烧毁痕迹,电源没有短路,关键芯片也没有出现典型的击穿表现,但接口已经无法正常通信,输入信号出现…
国产安卓去广告脚本:不是一键万能,先看 issue 再插线
先说结论(赶时间就看这段) 刷到那个“国产安卓一键去广告”的开源脚本,想知道能不能用—— 我的答案是:能用,但别抱“一键”的期待。 三句话说清楚: 它不 root、不删系统应用、不碰系统分区。本质是用数据线…
【花雕动手做】ESP-Mosaico 入门|乐鑫 AI Coding 模块化智能套件快速上手
ESP‑Mosaico 是乐鑫基于 ESP32‑S31 打造的 AI 原生模块化智能交互开发套件。板载 480480 QSPI 方形触控屏、完整音频通路、六轴 IMU 双磁力计,搭配磁吸扩展硬件体系,依托 ESP‑Claw AI 智能体框架,实现对话式硬件编程。可外接摄像头、88 R…
小Why的循环置换【牛客tracker 每日一题】
小Why的循环置换 时间限制:1 秒 空间限制:256M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每…
Python量化实战:回测工程避坑之财报偏差伪信号(附排查清单与代码)
TL;DR 成因:cyq_perf(筹码胜率)依赖当日逐笔成交与清算数据,最终值普遍在 15:30–23:00 才更新,盘中拿不到当日正式信号;而多数回测框架默认「当日因子值 + 当日收盘价成交」,等于用收盘后才产生的信息倒回当日交易,属于隐性未来函数。 自查:分时段(14:50 / 15:00 / …
日新闻
雷达数据处理平台化实践:从回波到航迹的链路设计与工程优化
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
从告警轰炸到精准预警:PLFM_RADAR平台监控雷达实践
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
SPI通信隔离实战:MAX14431BAEE+数字隔离器与PIC24FJ256GA705方案
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
周新闻
DRV8818+MK20DX128步进电机驱动方案:从电路到固件实战
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR+PIC18LF46K40双极步进电机驱动实战指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR与MK20DX128VFM5工业级双极步进控制协同设计
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
月新闻
DRV8818+MK20DX128步进电机驱动方案:从电路到固件实战
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR+PIC18LF46K40双极步进电机驱动实战指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
DRV8818PWPR与MK20DX128VFM5工业级双极步进控制协同设计
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …