将代码存储在数据库中是一个好主意吗?

时间:2011-04-05 12:55:08

标签: language-agnostic

我正在为社交网络编写游戏,我们有很多武器统计公式,项目统计数据等依赖于玩家特征的公式。公式看起来像 player.money += 10 * player.level

在db中存储这些函数似乎是一个好主意,让游戏设计师通过管理站点输入它们。

但我不确定这一点。这种方法会出现什么问题?

谢谢。

2 个答案:

答案 0 :(得分:2)

您需要应对的问题不是您是否应该使用数据库(您应该),而是使用正确的设计。考虑一下游戏中的对象层次结构以及它将如何反映在数据库中。

为每个属性创建数据库列是一个坏主意,因为它过于严格。你想看一个“属性包”的方法,你可以在其中查找大部分可以为性能编制索引的查找表。

这样的模型:

itemId,propertyId,propertyValue

要获得更高的性能,请将其与Memcached.

之类的内容结合使用

答案 1 :(得分:1)

这将是一个不错的方法。正如Jon指出的那样,它不是真正的“代码”,更像是项目/设备属性。

<强>赞成

  • 易于修改

<强>缺点

  • 需要查找每件物品或设备

您将对每个项目进行查找这一事实可能是性能瓶颈。如果您最终决定使用数据库,我建议从中提取数据一次,然后将其缓存,例如,会话的其余部分。项目属性不太可能经常更改,这将限制对数据库的查询。