I think that what you are looking for here is usually called "knowledge acquaintance."
In this case, your primary key will be your regular key plus the date the knowledge began.
Your end date can be either zero for the current record, or an hourly "time end".
When updating, you usually set the end date of the current record to “now” and insert a new record, starting from the same “now” with new values.
In "delete", you simply set the end date to "now."
source share