Skip to main content

Cardinality Property

NameTypeDefaultDescription
cardinalitystringNone (required)Defines the relationship multiplicity between the from and to entity types

Supported Cardinality Values

ValueFrom SideTo SideDescription
one-to-oneSingle entitySingle entityEach source entity links to exactly one target entity
one-to-manySingle entityMultiple entitiesEach source entity links to multiple target entities
many-to-oneMultiple entitiesSingle entityMultiple source entities link to one target entity
many-to-manyMultiple entitiesMultiple entitiesMultiple source entities link to multiple target entities
diagram

Where Cardinality is Used

Cardinality appears in two locations within the domain model YAML:

In the relationships Array

relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: systemRequirements
    back:
      name: userNeeds

In Inline Navigation Properties

domainModelTypes:
  TodoItem:
    properties:
      - name: requirement
        to: Requirement
        cardinality: many-to-one
Match the cardinality to your Polarion link role configuration. If a UserNeed can link to multiple SystemRequirement items, use one-to-many. If multiple SystemRequirement items can reference a single UserNeed, use many-to-one from the SystemRequirement perspective.

Cardinality and Sheet Configuration

The cardinality value directly affects how columns display data in the sheet configuration:
CardinalityColumn BehaviorSheet Config Requirement
one-to-oneSingle value cellNo special configuration
one-to-manyExpansion path with child rowsColumn key uses dot-separated path
many-to-oneReference picker (single select)display property recommended
many-to-manyMulti-item columnmultiItem: true required on column

Example: many-to-many in Sheet Configuration

columns:
  systemRequirements.systemRequirement.verificationTestCases.verificationTestCase:
    title: Verification
    width: 200
    multiItem: true
    display: title
    header:
      style: blue

Complete YAML Example

domainModelTypes:
  UserNeed:
    polarionType: userNeed
    properties:
      description:
      severity:

  SystemRequirement:
    polarionType: systemRequirement
    properties:
      description:
      severity:

  DesignRequirement:
    polarionType: designOutput
    properties:
      description:

  Hazard:
    polarionType: hazard
    properties:
      description:

  RiskControl:
    polarionType: riskControl
    properties:
      description:

relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: systemRequirements
    back:
      name: userNeeds

  - from: SystemRequirement
    to: DesignRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: designRequirements
    back:
      name: systemRequirements

  - from: Hazard
    to: RiskControl
    cardinality: many-to-many
    storage: linkedWorkItems
    linkRole: mitigates
    direct:
      name: riskControls
    back:
      name: hazards
If the cardinality value does not match the actual Polarion link role configuration, data may not load correctly. Verify that your link role allows the expected multiplicity in Administration > Work Item Link Roles.
Source Code
  • DatabridgeConstants.java
  • todosBig_model.yaml
  • prod-powersheet-src/com.nextedy.powersheet.client/cypress/fixtures/models/constraints_create_only.yaml
  • Relationship.java
  • sf_model.yaml