语言不可知-将代码存储在数据库中是一个好主意吗?



我正在为社交网络编写一款游戏,我们拥有许多基于玩家特征的武器属性和道具属性公式。公式是这样的player.money += 10 * player.level

它看起来像一个好主意,只是存储像这些函数在数据库中,让游戏设计师通过管理网站输入它们。

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

谢谢。

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

为每个属性创建一个数据库列是一个坏主意,因为它太死板了。你想看看一个"属性包"的方法,你有查找表的大部分可以索引的性能。

这个模型是这样的:

itemId, propertyId, propertyValue

为了获得更高的性能,可以将其与Memcached之类的东西结合使用。

这是一个不错的方法。正如Jon所指出的,这并不是真正的"代码",而更像是道具/装备属性。

优点

  • 易于修改

缺点

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

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

最新更新