Temporal Data modeling - valid time, transaction time and bitemporal data

Thread is closed for posting
2 posts, 0 answers
  1. Slobodan
    Slobodan avatar
    1 posts
    Member since:
    Mar 2012

    Posted 08 Nov 2012 Link to this post


    We are investigating whether to use OpenAccess ORM for our .net side in conjunction of the ERP solution that we are developing. But we are specifically interested in the "temporal capabilities".

    Our ERP solution has extensive implementation of Temporal Data (http://en.wikipedia.org/wiki/Temporal_database). We have the full concept covered for Bitemporal Data (http://en.wikipedia.org/wiki/Bitemporal_data) so we have both valid time and transaction time implemented in many of our tables.

    This means that we have a mechanism for storing historic records of an entity and for tracking the changes to the entity and for "soft deleting". But to do this we have implemented a set of APIs in our ERP system to support this. So inserts/updates/deletes of "temporally enabled" tables are done through the API. To correctly end date one record and create another valid one. And we are also implementing helpers to query the currently valid or some history records... We have done this over the course of several years and the framework is pretty stable for our purposes. 

    My question is whether OpenAccess ORM has the "temporal" features built in? Maybe someone has already built a "bitemporaly enabled" system and what are the experiences? 

    This is the theory behind it: http://www.cs.arizona.edu/~rts/tdbbook.pdf 

    There are suggestions of partial support in nHibernate and EF, but nothing that completely covers bitemporal and soft delete with gap handling, query support, and UI integration support... So is this possible to achieve with OpenAccess ORM?

  2. Ivailo
    Ivailo avatar
    318 posts

    Posted 13 Nov 2012 Link to this post

    Hello Slobodan,

    In case you are looking for capabilities provided out of the box as automated features, unfortunately OpenAccess ORM is not offering Temporal Data support in such way.

    However, you still can implement the scenario based on OpenAccess as we are always trying the be flexible and to provide hooks at the places you might want to customize the default behavior of the product. For instance, you can handle the Adding / Changing / Refreshing / Removing events and attach there the temporal logic for your application using the API you mentioned. If you need, you can customize the code generation and add a base class to your entities, or you can do that by coding with Fluent Mapping API.

    Let us know if you are planning to give it a try and we will do our best to support you in the process.

    Kind regards,
    the Telerik team
    Telerik OpenAccess ORM Meets ASP.NET Web API. Read more.
Back to Top