Technology / Guide

Treat names as labels, not primary keys

Names are useful to people and risky as database identifiers. A horse can share a name with another horse in a different context, and supplier spelling can change. Keep the supplier ID, your internal ID and the mapping provenance. A race entry should connect a horse to a specific race rather than overwrite the horse record with race-day attributes.

Three checks worth keeping

  • Separate horse identity from runner identity.
  • Store external source IDs with a source namespace.
  • Keep an audit trail when two records are merged or split.

Put the question to work

Stable identifiers support reliable links and historical corrections. They are a foundation rather than a guarantee of data quality.

Use the runner json validator to organise the next step, then explore the worked example.

Using this guide

The example schema is local teaching material, not a supplier specification.

Continue your racing research

For a related racing resource, explore PTPTips horse racing ratings and form. Check the source for changing race information.

Terms used in this guide

Schema
A documented structure and field contract for a data object.
Stable identifier
An identity key intended to remain reliable across labels and updates.
Snapshot
A representation of the full relevant state at a particular point.
Partial update
A change representation whose omitted-field meaning must be defined.
Freshness
The age and update context of a particular field, distinct from network speed.
Provenance
Information about the origin and transformation history of a data value.