The effectiveTime (field) andfields in the
enable the use of a "log style" append-only data model to track all changes to each
, providing full traceability. Once released, a row in any of these files will always remain unchanged. Historic data is supplied in the
dating back to the first release in
format in 2002.
In order to change the properties of a current(and, therefore, to create a new version of it), a new row is added to the applicable file, containing the updated fields, with the
field set to true and the timestamp in the effectiveTime (field) field indicating the nominal date on which the new version was released.
To inactivate aa new row is added, containing the same data as the final valid version of the
but with the
field set to false and the timestamp in the effectiveTime (field) field indicating the nominal date of the release in which the final version ceased being valid.
Where editorial policy does not allow a particular property of ato be changed whilst keeping the same
the
as a whole is inactivated (as described above), and a new row added with a new id, the effectiveTime (field) set to the nominal date of the release in which this version of the
became valid, and the
field set to true.
It is thus possible to see both the current values and any historical values of aat any point in time.
Content will not be future dated with respect to the release that it appears in, although a release itself may be released a few days before its nominal release date. Where there is a business requirement for specifying a future activation date for somethis may be modeled using
The following example demonstrates how the history mechanism works on the Concept file, but the same rules apply equally well to theand
member files. In this example, the
associated with the moduleId (field) and definitionStatusId (field) have been shown in place of their SCTID (data type) values.
A new(101291009) is added on the 1st July 2007:
Id | | |||||
---|---|---|---|---|---|---|
101291009 | 20070701 | 1 |
|
|
In the next release (on 1 st January 2008), theis moved from |Module 1| to |Module 2|. Because the moduleId field is not immutable, the
may be updated simply by adding a new record with the same Id.
Id | | |||||
---|---|---|---|---|---|---|
101291009 | 20070701 | 1 |
|
| ||
101291009 | 20080101 | 1 |
|
|
In the next release (on 1st July 2008), theis changed from being
to being
Id | | |||||
---|---|---|---|---|---|---|
101291009 | 20070701 | 1 |
|
| ||
101291009 | 20080101 | 1 |
|
| ||
101291009 | 20080701 | 1 |
|
|
In the next release (on 1 st January 2009), theis deactivated:
Id | | |||||
---|---|---|---|---|---|---|
101291009 | 20070701 | 1 |
|
| ||
101291009 | 20080101 | 1 |
|
| ||
101291009 | 20080701 | 1 |
|
| ||
101291009 | 20090101 | 0 |
|
|
At no stage in this process are previously written records ever amended. Once a record has been released in ait will continue to be released in exactly the same form in future
Changes are only recorded at the point of release in theIf a
record is changed a number of times between releases (during an edit and review process), only the most recently amended record will be appended to the
not individual records showing each separate edit to the released
In the last example, as well as inactivating the concept (active=0), the definitionStatusId (field) is changed from
900000000000073002|Defined| |
900000000000074008|Primitive| |
900000000000073002|Defined| |