The present invention provides a method that allows a developer to add
complex dependency logic to an existing database without having to modify
the underlying structure of the database. One embodiment of the present
invention provides a way to flexibly handle record state transitions by
using an event model. The event model is a set of one or more items
called an event. Each event in the event model has an associated event
type and contains dependency logic that interrelates the events in the
event model with one another. Each event represents a set of actions that
are optionally contingent upon a condition. The actions and conditions
that comprise an event are determine when the event is created. Each
event may have a different set of actions and conditions. This enables an
event to represent a number of different things. An event can represent
anything it is defined to represent. In one embodiment of the present
invention an event metamodel is instantiated to represent a number of
different event models and the corresponding dependencies that
interrelate them. The event metamodel enables the model creator to
control what happens to each and every event in the event metamodel
without having to modify the underlying structure of the database.