2

我决定为我的游戏使用谷歌应用引擎。我将使用 python 数据存储来存储信息。

我需要存储有关每个用户和正在玩的游戏的信息。对于每个用户,我需要存储姓名、id、赢得的游戏等。对于每个游戏,我需要存储 player1 id、player 2 id 和其他一些与游戏相关的字符串。

将游戏信息与用户联系起来的最佳方式是什么?我应该在用户数据库中有一个 game1、game2、game3 属性,还是有更有效的方法来做到这一点?

4

1 回答 1

4

您可以在数据存储中拥有“重复”属性,该属性提供值列表。在您的情况下,您可能会执行以下操作:

class Game(ndb.Model);
    ...

class User(ndb.Model):
    games = ndb.KeyProperty(kind=Game, repeated=True)

在您的代码中, myUser.games 将是游戏对象的键列表。

或者,如果您的游戏有固定数量的玩家,您可以在另一个方向建立关系:

class Game(ndb.Model):
    player1 = ndb.KeyProperty(kind=Player)
    player2 = ndb.KeyProperty(kind=Player)

然后为了获得一个玩家的所有游戏,你会查询类似的东西Game.query(player1=myPlayer.key)(再次查询 player2)。

于 2013-03-04T21:24:14.313 回答