繁体   English   中英

使用Google App Engine数据存储区建模数据

[英]Modelling Data with Google App Engine Datastore

我目前正在使用Python在Google App Engine上构建一个Web应用程序,以收集该形式的赛马数据。 基本数据结构是:课程有很多会议,许多比赛,许多马匹都有一位骑师和一位教练员。 到目前为止,我得到了以下模型(为简洁起见,减少了字段数)。

class Course(db.Model):
  course_number = db.IntegerProperty()     # course id (third party)
  course_description = db.StringProperty() # course name

class Meeting(db.Model):
  course = db.ReferenceProperty(Course)    # reference to course
  meeting_number = db.IntegerProperty()    # lifetime meeting number for course
  meeting_date = db.DateProperty()         # meeting date

class Race(db.Model):
  meeting = db.ReferenceProperty(Meeting)  # reference to meeting
  race_number = db.IntegerProperty()       # eg 1 for 1st race of meeting
  race_name = db.StringProperty()          # race name
  time_of_race = db.TimeProperty()         # race time

我在解决如何在数据存储区中存储有关马匹,训练师和骑师的数据时遇到麻烦。

我的应用程序将收集过去两年的数据,为此,我将保存有关Horse,Trainer和Jockey的相关结果信息。 在那个时间点,特定的马匹成绩信息对于教练和骑师来说是相同的。 但是随着时间的推移,一匹马可以拥有不同的教练和骑师。

当我意识到需要进行分析时,我可能需要看一下过去10场比赛的结果,主要是赛马,赛马和训练师的大脑疼痛。 由于结果发生在英国赛车之外(数据仍然可用)或发生在我开始完整比赛存储的日期之前,因此结果可能无法存储。

任何人都无法阐明如何优化Horse,Jockey,Trainer结果的存储,以便我能够适应这一点吗?

数据源: http : //form.horseracing.betfair.com/timeform可以通过JSON请求轻松访问所有必需的数据。

使用HorseResult,TrainerResult和JockeyResult模型在正确的轨道上。 别忘了,数据存储区没有分组功能或聚合功能,因此在加载数据时,您可能需要预先计算感兴趣的任何聚合或统计信息。

也许您还需要统计类型的模型来跟踪随时间推移的马匹,骑师和教练的表现以及两者的组合。 类似HorseMonth的东西,它可以跟踪该马匹参与了多少场比赛以及如何按月放置。

我还将考虑保留有关马与骑师或马与教练的组合随时间变化的详细信息。 不幸的是,我对赛马了解不足,无法为您提供有意义的组合具体建议。

由于听起来这是一个主要供您自己使用的工具,因此您可以考虑使用mapper API 当您浏览数据时,它可能具有巨大的价值。

如果您的数据中没有包含比赛,除了扩大收获范围外,您可能无能为力。 您可能只想返回自己的结果,也许是什么表明日期范围内的数据不足?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM