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.
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:
valid_from → when this version of the data became effective.valid_to → when this version stopped being valid.The latest version usually has valid_to = 9999-12-31 (a placeholder for “still valid”).
This way, you can answer questions like:
Let’s make this concrete. Imagine a 400-level Electrical Engineering student, Chika. She took the following courses: