The content model of eZ publish makes it possible to create relations between different objects. Any type of object can be connected to any other type of object. This feature is typically useful in situations when there is a need to bind and/or reuse information that is scattered around in the system.
For example, the concept of related objects makes it possible to add images to news articles. Instead of using a fixed set of image attributes, the images are stored as separate objects outside the article. These objects can then be related to the article and used directly in attributes represented by the "XML block" datatype. This approach is quite flexible because it does not enforce any limitations when it comes to the amount and the type of information that is to be included.
A relation between two objects can be created either at the object level or at the object attribute level. The system stores the different types of relations using the same database table. An object can not have a relation to itself.
Relations at the object level
This method is completely generic and it is always available for use. It allows the users to add objects to an object's related object array. This array is available for all objects; it is nothing more than a collection of the related objects' ID numbers. In other words, the relations can not be grouped in any way.
Relations at the attribute level
This method can be achieved using either the "Object relation" or the "Object relations" datatypes. While the first one allows only a single relation, the second allows multiple relations. Again, there is no grouping of the relations. However, by making use of several attributes that are represented by one of these datatypes, it is possible to create a structure with grouped relations.
Balazs Halasy (24/10/2005 1:38 pm)
Svitlana Shatokhina (31/10/2006 10:47 am)