...
How versioning is implemented will have a major impact on the storage approach. Logically, every top-level object in openEHR is versioned, meaning that separate versions from each commit are always available. Further, the Contribution concept means that any particular commit causes a set of versions (often called a "change-set") to be committed in one go. Rolling back to previous states of the data means retrieving the state of the data at each Contribution commit point, not just at arbitrary previous points in time. See the change_control package in the Common IM|svn/specification/TRUNK/publishing/architecture/rm/common_im.pdf|\.
We also have to be mindful of the requirements of versioned openEHR data - any solution should take account of the following features of openEHR data:
...