Databases before
Problems with previous design
- ESD data is recorded in the Countries database and so does not allow for historic data to be kept. For
example, when the president changes, we must overwrite the old president’s name.
Patterns to follow
The Turnout table was a good starting point for a better data management system. This table allowed us to
record voter turnout for each and every election that has every occurred. The VoteYear columns acts as a
“version number” to lets us track changes over time.
Data that we could not previously record
There was a high cost in changing the data fields that we record. If the elections team decided that they
wanted to start recording and display the remote voting system used, we needed to alter the database tables
involved, then change both the pages that display the data, but also update the editing interface so that
the team can enter that data. With a unified model, anyone can specify a new data field and start entering
data immediately. Displaying that new data type inside a web page requires just a single line of code.
Requirements for the new model
- The data is highly granular (i.e. we can track particular values such as the parliamentary gender quota
of a particular country as it happens, and even know the date that the quota changed, and perhaps even
have a comment field to explain the background behind the change)
