我想在appengine中快速实现一个简单的高分服务。以下是两个模型类:
class Hiscore(db.Model):
time = db.DateTimeProperty()
playerName = db.StringProperty()
score = db.IntegerProperty()
class HiscoreTable(db.Model):
countryCode = db.StringProperty()
scores = db.ListProperty(???)
问题1:我到底如何使用“ListProperty”?很难找到例子。在
问题2:是否有方法确保hiscore表按每个成员分数的“score”属性排序?我能自动限制列表到100个条目吗?在
非常感谢
鲁本
ListProperty是python对象的列表,简单明了。如果我正确理解您的问题,您所描述的是HiscoreTable中的hiscore列表
分数=数据库列表属性(他的核心)为了排序,在编写HiscoreTable实体之前,必须使用
sorted
按分数对列表进行排序。它所做的相当于对添加到列表中的Hiscore对象进行pickle处理,并在随后的查询中检索相同的pickle版本。本质上,这将是一份他以前的核心排名状态的快照列表,而不是当前状态。如果您的目的是将分数缓存一段时间,那么这是可行的,但是您可以考虑使用memcache。在或者,为了引用实际的Hiscore实体,您可以这样做
用钥匙取回他的钥匙。同样,您需要在编写列表之前使用
sorted
对列表进行排序,这将在编写HiscoreTable时存储排名快照。在但是,如果您需要的是每个国家的最新分数表,那么您每次都必须直接查询Hiscore模型。在
^{pr2}$有两种方法:
HicoreTable
包含Hiscore
键的列表:在这种情况下,您受到实体上最大索引数的限制:5000
每个
Hiscore
都有对其所属的HiscoreTable
的引用:相关问题 更多 >
编程相关推荐