Object versioning
First Claim
1. A method of managing a repository containing multiple versions of an object, the method comprising:
- inserting into a first table a first row comprising at least one attribute of a first object, an identifier of the first object, and a version number of the first object; and
inserting into a second table a second row comprising the version number of the first object, the identifier of the first object, an identity of a configuration wherein the first object exists, and at least one identifier of a second object to which said first object is related in said configuration.
1 Assignment
0 Petitions
Accused Products
Abstract
A repository contains multiple versions of an object, and any version of the object can be modified by a user, as and when necessary. A table for one object (“first object”) that is contained in another object (“second object”) has at least two columns, namely one column for a minimum version of the second object and another column for a maximum version of the second object. If a number of versions of the first object are responsive to a query, then one version of the first object is selected if a version of the second object that is responsive to the query happens to be in the range defined by the just-described minimum version number and the maximum version number. Depending on the embodiment, the second object can be an immediate parent of the first object, or can be an ancestor (also called “first class object”) of the first object that is not contained in any other object. In some embodiments, one or more attributes of the first object are stored in a first table along with a unique identifier and a version number. In addition, information on relations of the first object to other objects as well as an identity of a configuration (to which the current version of the first object belongs) are stored in a second table. Therefore, a pair of tables are used for each object, so as to decouple information that defines an object from information on relationships of the object. If a change happens in just the relationship of an object then no change is made to the table containing the definition of the object. Similarly, if a change happens in just the definition of the object, then no change is made to the table containing the relations of the object. Moreover, when a change happens to an object, if the object has a number of ancestors and decendants only an immediate parent of the object is updated, thereby to eliminate a versioning chain reaction (i.e. other objects are not affected).
-
Citations
26 Claims
-
1. A method of managing a repository containing multiple versions of an object, the method comprising:
-
inserting into a first table a first row comprising at least one attribute of a first object, an identifier of the first object, and a version number of the first object; and
inserting into a second table a second row comprising the version number of the first object, the identifier of the first object, an identity of a configuration wherein the first object exists, and at least one identifier of a second object to which said first object is related in said configuration. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer comprising:
-
a storage medium comprising a repository containing multiple versions of a first object;
means, coupled to the storage medium, for inserting into a first table in the repository a first row comprising at least one attribute of the first object, an identifier of the first object, and a version number of the first object; and
means, coupled to the storage medium, for inserting into a second table in the repository a second row comprising the version number of the first object, the identifier of the first object, an identity of a configuration wherein the first object exists, and an identifier of a second object to which said first object is related.
-
-
16. A method of managing a repository containing multiple versions of an object, the method comprising:
-
inserting into a first table, a row for a first object being added to the repository, the first table comprising a column for a minimum version number of a second object and another column for a maximum version number of the second object; and
in response to a query to which a plurality of versions of the first object are responsive, selecting a version of the first object for which a version of the second object falls between the minimum version number and the maximum version number, wherein said version of the second object is responsive to the query. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer comprising:
-
a storage medium comprising a repository containing multiple versions of a first object;
means, coupled to the storage medium, for inserting into a first table in the repository a row for a first object to be added to the repository, the first table comprising a column for a minimum version number of a second object and another column for a maximum version number of the second object, wherein a version number of the second object is stored as the minimum version number, and infinity is stored as the maximum version number; and
means, coupled to the storage medium, for selecting a version of the first object for which a version of the second object falls between the minimum version number and the maximum version number, wherein said version of the second object is responsive to a first portion of a query, and a plurality of versions of the first object including said selected version are responsive to a second portion of said query.
-
Specification