Imagine you’re a student in Electrical and Electronics Engineering at UNILAG. You’ve just finished a crazy semester - Power Systems, Control, and Electromagnetics nearly unalived you. Soon, results are released near dubbing center. But a few weeks after that, you get a message on the GC that the results are updated because a lecturer made a correction: one of the questions did not have an answer, therefore everyone gets bonus marks.

Now imagine this happens not just for you but for hundreds of students across multiple courses. How can the university keep track of what the results were at each point in time, while also showing everyone the latest official result?

This is exactly where temporal milestoning comes in.


What is Temporal Milestoning?

Temporal milestoning is a database design technique used to track changes to records over time without losing history. Instead of overwriting (in place updating) a row in a table whenever something changes, you record a milestone with a validity period:

The latest version usually has valid_to = 9999-12-31 (a placeholder for “still valid”).

This way, you can answer questions like:


Why Elect Needs Temporal Milestoning for Results

Let’s make this concrete. Imagine a 400-level Electrical Engineering student, Chika. She took the following courses: