我正在构建一个“发现差异”的多人游戏。
游戏规格如下:
- 每场比赛最多可以有10名玩家。
- 用户不能两次看到同一张图片。
(一张图片由四张图片组成,用户必须“找出它们之间的区别”)。
我收集了数千甚至可能是数万张图片可供选择。我面临的问题是一种极其低效且不可扩展的方法,用于查找尚未有游戏玩家看过的图片。
在我的数据库中,我有usage table
以下字段:
- 图片ID
- 用户身份
我目前的解决方案如下:
用户进入游戏,应用程序从数据库中选择一张未出现在该用户使用表中的图片,并且对于进入的每个用户,我运行相同的功能,仅添加同一游戏中其他用户已经看过的图片的值。
我担心一旦有数万张图片的数据库可供选择,并且使用表已经被以前的游戏填满,该功能只会花费太长时间而破坏游戏的流程。
这种方法的可扩展性不是很好,我期待相当稳定的流量,这意味着正在玩很多游戏。
有没有人对如何改进这个逻辑或更好的数据库结构有任何建议?