我可能找不到任何相关内容,因为我不知道如何描述它。
我有以下设置:
现在,对于不同的游戏,有不同的统计数据。我真的需要为每个游戏创建另一个具有相关属性的模型,还是有更聪明的方法来做到这一点?
答案 0 :(得分:2)
hash in string
方法会使查询和索引此表变得复杂。
备选方案是有两个用于保存游戏统计数据的表,一个是header
表,其中包含游戏会话日期,持续时间等属性以及detail
表,保持游戏特定属性:
# pseudocode:
GameProfile
has_many :game_profile_details
end
GameProfileDetail
belongs_to :game_profile
stat_name: string
stat_value: string
end
答案 1 :(得分:1)
您可以创建一个包含特定游戏统计信息的通用模型。
由于每个游戏都会有一些相同的统计数据(名称?,得分高?),您可以轻松设置它们。
棘手的部分是如何处理不同的游戏统计数据。一个游戏可能有“最佳时间”,而另一个游戏可能会“轮流使用”。
要处理此问题,您可以将其他数据保存为字符串中的哈希值。
因此,它会在一个游戏中保存meta_data: "{'best_time' => '0:04:23.6', 'other' => 'thing'}"
,但您不需要为不使用游戏的游戏留下空best_time
字段。
然后当您根据游戏加载数据时,您可以编码
<%= @gamedata.meta_data.best_time %>
# returns "0:04:23.6"