2014-04-13 60 views
0

我正在创建一个在线RPG,玩家可以互相对战,并且我希望能够在战斗结束后以结构化方式显示每个“战斗行动”。将战斗和战斗日志存储在数据库中

我最初的目标是拥有一张战斗表,一个属于战斗的战斗日志,并通过另一个表具有许多“动作”。我的想法是让动作表中的每个记录都有一个数字(战斗中发生的动作),一个战斗ID,然后是一个字符串,表示“玩家1攻击玩家2造成5点伤害”。

这种方法是否存在任何明显的问题?如果我有1000次战斗,每次都有100-500个动作,会不会成为问题?如果是这样,有一个想法更好的解决方案?非常感谢

回答

0

这种方法没有问题。
请记住创建propper索引以快速访问操作。

+0

将每个动作连接成一个长字符串并将它存储在battlelog表中而不是更好? – manis

+0

取决于你想要的动作。如果你总是访问一场战斗的所有行动,将它们存储在一个列中会更快。然后你可以使用'serialize'来存储(point,test)哈希数组,参见http://api.rubyonrails.org/classes/ActiveRecord/Base.html –