Index: openacs-4/packages/acs-core-docs/www/object-identity.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-identity.html,v diff -u -r1.22.2.6 -r1.22.2.7 --- openacs-4/packages/acs-core-docs/www/object-identity.html 18 Dec 2003 10:04:26 -0000 1.22.2.6 +++ openacs-4/packages/acs-core-docs/www/object-identity.html 11 Jan 2004 12:45:46 -0000 1.22.2.7 @@ -1,18 +1,18 @@ -Object Identity

Object Identity

By Rafael H. Schloming

+Object Identity

Object Identity

By Rafael H. Schloming


OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

One of the major design features of OpenACS 5.0.0b4 is the explicit representation +

One of the major design features of OpenACS 5.0.0rc1 is the explicit representation of object identity. The reason I say "explicit representation" is because the concept of object identity has been around forever. It is inherent to our problem domain. Consider the example of 3.x style scoping. The 3.x data models use the triple (user_id, group_id, -scope) to identify an object. In the 5.0.0b4 data model this +scope) to identify an object. In the 5.0.0rc1 data model this object is explicitly represented by a single party_id.

Another good example of this is can be found in the user groups data model. The 3.x user groups data model contains another example of an implied identity. Every mapping between a user and a group could have an arbitrary number of attached values (user_group_member_fields, etc.). In this case it is the pair (group_id, user_id) that implicitly refers to an -object (the person's membership in a group). In the 5.0.0b4 data model this +object (the person's membership in a group). In the 5.0.0rc1 data model this object identity is made explicit by adding an integer primary key to the table that maps users to groups.

Coming from a purely relational world, this might seem slightly weird at first. The pair (group_id, user_id) is sufficient to uniquely identify the