我们在 Ruby on Rails/postgres 服务器上托管 iPhone 社交游戏的后端。
每个游戏都有 54 个问题,通过数据库中的关系表连接。由于我们目前有大约 200 万个正在进行的游戏,关系表包含大约 100M 行。这会占用大量内存。我们现在正在考虑构建一个算法,该算法使用由 game_id 播种的伪随机序列生成 54 个问题 id。这个想法是产生一个看似随机的问题集合,而不将明确的游戏问题关系保存到数据库中。通过这种方式,我们可以将负载从数据库转移到应用程序服务器。这是一个好主意吗?
伪代码:
r = Random.new(game_id)
q1_id = r.rand(n_questions)
q2_id = r.rand(n_questions)
...