一、游戏模板数据库设计特点
软件行业一般数据库设计原则,”保持数据的完整性一致性“,”避免数据冗余“,”范式设计“。但游戏领域的游戏模板表设计上还需要考虑这些特点
1.1、对游戏程序只读,游戏程序只需要考虑读取性能,不需要过多考虑修改性能
1.2、数据结构复杂,如果过于追求“去冗余”,则会导致表结构非常复杂,策划将难以填写
1.3、很多项目是采用Excel录入的,即使你设计的结构考虑了重用性,策划依然会冗余的填写
1.4、大量的与程序约定的参数潜规则,程序员往往为了系统的灵活性,而抽象出一些配置,会放入模板表中,而这些对策划来说是晦涩难懂的,建议做详细备注
1.5、程序事先读入内存,读取模板数据的方式,大部分的时候不会使用SQL的select,而常见的做法是事先读入内存,有的是实例化各种对象,有的是哈希表,有的数据数组,很少会在程序中嵌入一个SQL引擎去查询数据
所以游戏模板库的设计,一般会在传统数据库设计原则基础上,做很多的灵活设计,这是由于游戏产品的特殊性决定的
二、设计范式
不管怎么说毕竟还是数据库设计,设计范式作为基本设计理念还是要重温一下
2.1、第一范式,确保每列保持原子性,即列不可分,比如这些信息:”张三、战士、5级、绿装、50攻击力….“ 我们设计这样的结构
玩家 |
职业 |
级别 |
装备 |
攻击力 |
---|---|---|---|---|
张三 |
战士 |
5 |
绿色头盔 |
50攻击力 |
但是这样装备字段里包括了多个信息,所以我们改成这样,就可以符合第一范式了
玩家 |
职业 |
级别 |
装备品质 |
装备 |
攻击力 |
张三 |
战士 |
5 |
绿色 |
头盔 |
50攻击力 |
2.2、第二范式,属性完全依赖于主键,比如有这样一个数据结