Skip to content

Sub-entity grouping

Business entities often decompose into sub-entities. An Order splits into an Order Header and Order Lines; a Customer accretes Customer Address, Customer Details, and Customer PII. DeltaVault models this as composition: a child entity is “part of” a container entity, and the model canvas renders the family as one collapsible group.

A group’s container is an ordinary business entity. For concepts like Customer it is usually fully modeled. For events like Order it can be a thin entity, created only to name the group, with no attributes of its own. Either way it appears everywhere entities appear: the directory, pickers, and search. Membership is a fact about the entity, not about one diagram: every model that shows the same entities shows the same grouping.

Groups are a single level deep. A container cannot itself be part of another entity, and an entity with sub-entities of its own cannot join a group. The editor enforces both rules: the Part of picker offers only entities that can act as a container, and an entity that already has sub-entities is told it cannot be part of another.

There are three ways to edit membership:

  • On the canvas, select two or more entities (Ctrl-click on Windows, Cmd-click on macOS), right-click one of them, and choose Group into new entity…. Name the new container and DeltaVault creates it, adds it to the model, and moves the selected entities into it in one step.
  • Right-click a single entity and choose Add to group… to add it to an existing container, or Remove from [container] to make it standalone again.
  • In the entity sheet’s Semantics section, the Part of picker sets or clears the same fact from outside the canvas.

Dragging a node out of a group box never changes membership. Membership is metadata, and only the explicit actions above rewrite it.

Each group renders as a soft-bordered box: the title bar is the container entity (click it to open the entity sheet), and the members are draggable nodes inside it. The chevron in the title bar collapses the group to a single node with a “contains N” badge; clicking the badge expands it again. Relationships that touch hidden members re-route to the collapsed node, folded together with a count when several relationships share the same far end.

Collapse state is a personal reading aid. It is remembered per model in your browser and never changes the model itself.

Deleting a container entity never deletes its members. They become standalone entities again, keeping their attributes, relationships, and positions. Archiving is different: an archived container keeps its group and simply shows its Archived status.