Rowingstats API v88

Published on: July 15, 2018

As of build version 88

The rowing stats website is built upon a postgresql database. This article outlines the schema.

NB: Every table listed below also includes a primary key, or pk, field. These are not listed below to avoid duplication.

Rower, Club and Race data

Competition

Purpose: defines the highest level race. Examples include the Olympic Games, the Head of the Charles Regatta, BUCS Championships.

Fields:

Event

Purpose: defines the events within a competition - eg M1x, Temple Challenge Cup, Intermediate Eights.

Fields:

Race

Purpose: defines an instance of a particular event, i.e. an individual race. e.g the A Final of the W4- at the Olympics.

Fields:

Rower

Purpose: defines an individual athlete. NB this also includes coxes.

Fields:

Club

Purpose: defines a club for which a rower may be a member.

Fields:

Result

Purpose: defines the individual results within a race.

Fields:

Time

Purpose: stores times associated with a result. Reflecting the varying nature of times, these are stored as a foreignkey relation to the result.

Fields:

Ranking data

Score

Purpose: provides the estimate of a rower's skill at a given point in time for a given result.

Fields:

ScoreRanking

Purpose: for the purposes of the ranking system, score data is precomputed separately and stored distinct from the main relational data. In other words, a flattened table is calculated just for the rankings.

Fields: