Relations
Documentation status: reference — see Maturity and evidence.
Relations express domain structure between multiple participants. A relation may remain a simple link or become a reified fact when it has its own identity, attributes, or lifecycle.
Roles
Role names are part of the model. They should express the meaning of each participant rather than a storage constraint.
fields:
- ProjectId:
type: String
rolePath: Project.Id
- TaskId:
type: String
rolePath: Task.Id
Binary or polyadic relation
Do not force a binary relation when the business fact involves several participants. A polyadic relation keeps that meaning explicit in the conceptual model.
Persistence
Relational keys and columns are projections. Keep the conceptual vocabulary (Project, Task, roles, relation identity) in the model and let the persistence facet express the technical mapping.