字典设计
修改时间
文章可能会随时修改,慢慢完善。
2018-12-04 16:00
前言
游戏服务器在启动时,需要加载某些静态数据到内存之中,比如所有商品的配置数据(可能包含id、名称、价格等属性)。
这些静态数据在被加载后,会在内存中以某种形式呈现、组织和使用,在这里假设称它为"信息"。
见过很多种关于这种"信息"的命名,比如配置信息(config)、模型数据(model)、模板数据(template)、定义数据(def)。
在这些年中经历了以上的命名,最后还是选择了字典条目(dict)作为这种"信息"的命名。
数据载体
承载这些静态数据的载体有很多种,在选择上可能会基于开发语言或是团队喜好(方便、直观等)。
- 基于代码的格式,将数据组织成语言代码,比如lua、json、pike等,部分代码可以做成一种压缩形式。
- 基于excel,直接使用excel来保存数据。
- 基于数据库表。
- 基于文本文件,比如csv、lua、json等。
- 自定义编辑器,可能存成二进制或是文本格式。
术语
entry:字典条目,一般来说,一个字典条目对应一条记录。
dict:字典,某一类型的所有字典条目组成了一部字典,因此系统中很有可能会存在多部字典。
加载过程
当在系统中使用字典条目时,我