Link temporal attributes to validity times


I was wondering if there is a way to link temporal attributes to validity time. A simple example is a list of Person with the attributes: born and died, I would like to have both the attributes in the Person documents and use the validity time (as given by these attributes) during querying.

Thank you very much in advance

1 Like

Hello @newtester805! Thanks for asking this question - it cut rights to the heart of temporal modelling :slight_smile:

The short answer is that XT is designed such that validity time works at the granularity of the entire document, meaning all attributes will share the same “updates” in the entity-history timeline. If you want to track different validity times for each attribute then you need to split out those attributes to new entities (with their own independent histories) and join accordingly when querying.

At the extreme this ends up as 6NF but there is a non-trivial performance and complexity cost to using XT (or any database) in that way. The rule of thumb I’ve heard a few times is: “things that change together should travel together” (i.e. decompose your entities only as much as needed to reduce the number of unrelated changes).

I’d be happy to talk through how this translates to your actual use case if you ever want to reach out

1 Like