The <relationship> element is a child of the <entity>
element. It has the following attributes:
<relation
name = '' -- relation name
deleteRule = ( 0,DELETE_NULLIFY | 1,DELETE_DENY | 2,DELETE_CASCADE |
3,DELETE_NOACTION ) : 0 -- behaviour when object is deleted
isClassProperty = '1' -- '0' or '1'; relation is also a class property
multiplicityLowerBound = ( int > -1 ) : 0
multiplicityUpperBound = ( int > -1 | -1,* ) : 1
-- -1 or * indicate unconstrained upper bound
destinationEntity = '' -- name of destination entity
joinSemantic = ( 0,Inner | 1,FullOuter | 2,LeftOuter | 3,Right Outer ) : 0
displayLabel = '' -- text label to use in applications
comment = '' -- a comment
>
</relation>
All these attributes are described in section 2.3.4.
Here are the possible values for these attributes, and their meaning:
isClassProperty:DELETE NULLIFY
'1': DELETE DENY
'2': DELETE CASCADE
'3': DELETE NOACTION
Note: in future it will be possible to enter the real names (such as
DELETE_CASCADE), not only their numerical value (defined in
module ClassDescription.
isClassProperty:'1' (Yes). '0' stands for No.
multiplicityLowerBound, multiplicityUpperBound:'*' or '-1' for
an unconstrained upper bound.
Default values: '0' for lower bound, '1' for upper
bound.
joinSemantic:'0': (default) Inner join
'1': Full outer join
'2': Left outer join
'3': Right outer join
(as defined in module Relationship)
The full definition of a relationship implies that it defines at least one join.
See also: