如何创建一个游戏链接到2个玩家的结构?例如,如果我创建乒乓球比赛并且在比赛结束后我想保持比分和球员。我怎样才能做到这一点?如何将2名玩家链接到一个游戏中并知道哪个玩家获胜以及哪个玩家输了?
我在SQL中做了类似的事情,但我不知道如何在Android的JSON(Firebase)中执行此操作。在SQL中,我创建了一个用户表和一个游戏表,然后用他们的用户名记录了玩家1和玩家2,然后选择了哪个玩家赢了哪个以及哪个输了。
我如何在Firebase中执行此操作?
谢谢!
答案 0 :(得分:1)
使用 NoSQL ,数据会变平并在需要的地方重复,以便快速访问相关数据。这称为非规范化,您可以在此great post中详细了解。
所以你提供的ping pong游戏帖子,你的firebase JSON数据库可能看起来像这样:
players: {
-KUQvO_GBh4jdale6Pj4: {
name: 'Hillary',
wins: 2,
lost: 0,
tied: 0,
gamesPlayed: [
-KUQvQhApOLfhl0yzTTH,
-KUQwI4P9q4DdSsUn9Du
]
},
-KUQvQ3_--kO67AOgc9D: {
name: 'Trump',
wins: 0,
lost: 2,
tied: 0,
gamesPlayed: [
-KUQvQhApOLfhl0yzTTH,
-KUQwI4P9q4DdSsUn9Du
]
}
},
games: {
-KUQvQhApOLfhl0yzTTH: {
player1: -KUQvO_GBh4jdale6Pj4,
player2: -KUQvQ3_--kO67AOgc9D,
winner: player1,
timestamp: 1476863790
},
-KUQwI4P9q4DdSsUn9Du: {
player1: -KUQvO_GBh4jdale6Pj4,
player2: -KUQvQ3_--kO67AOgc9D,
winner: player1,
timestamp: 1476863999
}
}
<强>更新强>
此article讨论了多位置更新,允许您同时更新多个路径以保持数据完整性。如果您单独进行每次更新,则可能会有一个或多个更新失败,这意味着您的数据可能意味着它无法解决。