我正在构建一个“Spot the diffrence”多人游戏。更高效的SQL查询
游戏的specifiactions是:
- 最多可以有10名球员在每场比赛。
- 用户不得两次看到相同的图片。
(一张图片由 四张图片组成,用户必须“发现它们之间的差异”)。
我有数千,数千的 甚至可能几十图片集选择。我面临的问题是非常有效且不可扩展的方法,用于查找没有任何 游戏玩家已经看到的图片。
在我的数据库我有以下字段的usage table
:
- picture_id
- USER_ID
我目前的解决方案如下:
用户进入游戏,应用程序会从数据库中选择一张不会出现的图片i在该用户的使用表中,并且对于进入的每个用户,我运行相同的功能,只添加同一游戏中的其他用户已经看到的图片的值。
我担心的是,一旦有成千上万张图片的数据库可供选择,并且使用表已被前面的游戏填满,则该功能将花费太长的时间来损害游戏的流程。
这种方法不具有很好的可扩展性,我期待着持续流量的稳定流动,这意味着很多正在玩的游戏。
有没有人有任何建议如何改善这个逻辑或建议更好的数据库结构?
感谢您的贡献 - 这正是我一直在寻找的建议类型。 – Lix