Relationships connect your entities and express how rows relate. Schemity draws them in crow’s foot notation, the notation most software engineers read fastest.
Creating a relationship
Draw a relationship between two entities and Schemity creates the foreign key field on the child entity and the connector between them. In the relation dialog you set:
- Relation type -
1:N,1:1, orN:N. - On delete and On update - the referential actions:
CASCADE,SET NULL,RESTRICT,NO ACTION, orSET DEFAULT.
Reading crow’s foot notation
The symbols at each end show cardinality and optionality:
- A single bar means “one”.
- The crow’s foot (three prongs) means “many”.
- A circle means “optional” - shown at the child end when the foreign key field is nullable.
So a connector with a bar on the parent and a crow’s foot on the child reads as one-to-many.
1:N vs N:N relationships
Understanding 1:N vs N:N relationships is the key modeling decision:
- One-to-many (1:N) - one parent row relates to many child rows. A user has many orders. This is a direct foreign key.
- One-to-one (1:1) - at most one row on each side.
- Many-to-many (N:N) - rows on both sides relate to many on the other. Students and courses. A relational database cannot store this directly; it needs a junction entity - see Junction Tables.
Self-referencing relationships
An entity can relate to itself - an employees.manager_id pointing back at employees.id. Draw the relationship from the entity to its own key.
Tracing a relationship
In a crowded diagram it can be hard to see where a connector starts and ends. Two features make any relationship traceable:
- Click to highlight - click a relationship and Schemity highlights the whole line together with the fields it connects: the foreign key field on the source entity and the primary key field on the target entity. Both ends of the relationship are instantly visible, no matter how many lines cross it.
- Color inheritance - set a color on an entity and every relationship originating from it inherits that color, so the color alone tells you which entity a line comes from.
Where two relationship lines cross, one hops over the other with a small arc, so a crossing is never mistaken for a connection.
Copy and paste with foreign keys
When you copy or duplicate entities, Schemity is smart about foreign keys: relationships to entities you also copied are preserved with remapped names, while relationships to entities left behind are dropped and the field becomes a plain field.
Routing
To control how a connector is drawn around other entities, add Custom Waypoints.
Next
Add finer rules with Check Constraints & Composite Unique.