В настоящее время я создаю веб-приложение на Google App Engine на Python для сбора данных о скачках в форме. Базовая структура данных: курс имеет много встреч, много гонок, много лошадей, один жокей и один тренер. Пока у меня есть следующие модели (для краткости уменьшено количество полей).
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
У меня возникают проблемы при разработке способов хранения данных о лошадях, дрессировщиках, жокеях в хранилище данных.
Моя заявка будет собирать данные, скажем, за последние 2 года, для этого я буду сохранять соответствующую информацию о результатах для Horse, Trainer, Jockey. Информация о конкретном результате лошадей одинакова для Тренера и Жокея в тот момент. Однако со временем у Лошади может быть другой тренер и другой жокей.
Моя основная боль в мозгу наступает, когда я понимаю, что в анализе мне может понадобиться посмотреть результат за последние 10 гонок для Лошади, Жокея, Тренера. Результаты, которые не могут быть сохранены либо потому, что результаты получены за пределами гонок в Великобритании (данные по-прежнему доступны), либо до даты, когда я начал заполнять гонки.
Может кто-нибудь пролить свет на то, как оптимизировать хранение результатов Horse, Jockey, Trainer, чтобы я мог приспособиться к этому?
Источник данных: http://form.horseracing.betfair.com/timeform
Все необходимые данные могут быть легко доступны с помощью запросов JSON.