我有一个我正在使用 PHP 编写的游戏。就我的问题而言,我们可以将我的游戏与 iPhone 上的“Words with Friends”进行比较,对于那些不熟悉该游戏的人来说,它是一款在线/移动拼字游戏。游戏包括3个主要步骤:
- 第一个两个用户决定开始游戏。
- 第二,在保存两个用户的游戏数据的数据库表“DATA”中创建一个新行。
- 第三,也是最后,两人被重新定位到他们玩游戏的新页面。当游戏结束时,“DATA”表中的行被删除,赢/输被保存并反映在“USER”表中。就像 Words with Friends 一样,用户可以随时拥有多个“打开的游戏”。这意味着他们不必在另一场比赛开始之前完成一场比赛。
背景: 在 MySQL 数据库中,我将至少有两个表,一个用于标记通用玩家数据:USER,另一个用于保存当前正在进行的游戏的统计数据,称为:DATA。每个用户在创建帐户时都将获得一个唯一的 9 位 ID 主键。
我需要一些关于用于完成此类事情的最佳实践的建议。我有一些想法,在我看来相当原始,它们会起作用,但我想使用更专业的东西。
我的一个想法是取两个用户 ID 中的较小数字并将其连接到较大 ID 的开头并将其保存在数据库中。一个例子。我们有 2 个用户:adam 和 alan。他们的 ID 分别是123456789
和223456789
。这两个开始一个游戏,在 DATA 表中创建一个新行,其中GAMEID
等于123456789223456789
。他们在游戏进行到一半时退出。第二天,他们尝试开始新游戏。数据库检查哪个用户的 ID 较小,并将它们连接在一起以检查游戏记录是否已经存在。它注意到123456789223456789
游戏已经开始,而不是创建一个全新的游戏,而是让他们回到他们已经在进行的游戏。
我觉得这肯定过头了,应该有一个更简单的方法来解决这个问题。请我感谢和建议或提示。