Browse Prior Art Database

Support Versioning Data Model with Unique Attributes in Content Management Library Server Disclosure Number: IPCOM000018599D
Original Publication Date: 2003-Jul-25
Included in the Prior Art Database: 2003-Jul-25
Document File: 2 page(s) / 60K

Publishing Venue



Content Management (CM) supports multiple versions of a document/item by keep tracking metadata of each version in Libeary Server (LS). However, database unique indexes can not set to an attribute or a set of attributes like IndexName(AttributeName) directly any more since the attribute values should be allowed to duplicate within the same document/item but different version. Therefore, versionID is added as part of database unique index like IndexName(AttributeName, VersionID). This updated unique index can prevent duplicate attribute value for different Item with the same versionID, but not for different Item with different VersionID. The approach CM Library Server uses to combine database unique index and application checking together to support unique attributes with versioning. This will guarantee the data integrity for versioning and unique attribute aspects of views.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

  Support Versioning Data Model with Unique Attributes in Content Management Library Server

In the Content Management (CM), an item type can be defined as no versioning, versioning always or application control versioning. With versioning always or application control versioning, the versionID of an item will be increased when users update that item. Moreover, multiple components in a child component type can belong to the same item and the value of the unique attribute is unique cross components. This implies the value of the unique attribute is allowed to duplicate within a component but different versions.

To support unique attribute values with versioning on, the approach is to have

1. A database index IndexName(AttributeName, VersionID) defined

The database will help filter out duplicate values for different items with the same versionID. Therefore, it will guarantee attribute values can be duplicated within the same item with different versionID.

For example, Given a component table with two unique attibutes - Emp_No and Name and two unique inudexes are defined by CM Library Server - unique index idx_1 ( Emp_No, VersionID ) and idx_2 ( Name, VersionID ).

ComponentID VersionID Emp_No Name

A03C11B32911D7484 7

1 1233 John Smith

2 1233 John Smith

1 1245 Mary Nelson

As shown in the table, it allows values to be duplicated within the same ComponentID for different VersionID like A03C11B32911D74847.

Now, if the user wants to create a new version (VersionID will be 2) of A03C19B30304E39908 and update Mary Nelson's Emp_No to 1233, it will get database error of unique index violation. It is because pair of (Emp_No, VersionID) = (1233, 2) already exists in the table so that new inserting pair for ComponentID A03C19B30304E39908 violates unique index...