【发布时间】:2010-12-28 23:14:18
【问题描述】:
我是数据库设计的新手。我正在尝试编写一个棋盘游戏(最多 4 名玩家),并试图想出一种相互交流动作的方法。 根据stackoverflow的建议,我正在为此使用数据库。
我的问题是 - 当玩家 A 移动时,B、C 和 D 必须读取移动。所以 A 移动的事实需要传达给 B、C 和 D。我正在这样做以下方式。请告诉我是否有更好的方法来做到这一点。在我看来,这一切似乎都是错误的,而且非常不稳定。
我有一个包含以下字段的表格 -
gameId, userMove, flagA, flagB, flagC, flagD
所以当 A 采取行动时,我会写下其他内容 - (flagA=0, flagB=1, flagC=1, flagD=1)
当 B、C 或 D 读取 A 的动作时,它们会减少相应的标志。
除非所有标志都为 0,否则 A 不会更新表。
当其他人采取行动时也会发生同样的事情。
评论?为此必须有更好的方法。我在这里看到的错误 -
- 我正在循环选择,直到 A 的所有标志都为 0
- 我正在循环选择,直到相应用户的标志设置为读取移动。
我需要担心很多服务器负载和客户端超时。
我希望我能够清楚地解释我的问题。如有需要,请提出问题。
感谢任何帮助。
编辑:游戏是基于网络的(在浏览器中运行),我使用 php 进行服务器端开发,所以我不能使用内存缓存,但如果可能的话我很乐意这样做。
谢谢, - 帕夫
【问题讨论】:
-
循环表示轮询,还是循环表示迭代?
-
我不太明白你为什么要使用数据库?玩家之间的动作交流?正如 Daniel 指出的那样,DB 不是用于此目的的最佳选择,使用本地内存会更好
标签: mysql database database-design