Tables rarely stand alone. An Account needs to know which Contacts work there; a Contact needs to know which Account it belongs to. A relationship is what connects two tables in Dataverse. Once you recognize the three basic shapes a relationship can take, you can reason about how almost any pair of tables connects.
- A relationship connects two tables so their records can reference each other
- One-to-many: one record on this side links to many on the other
- Many-to-one: the same relationship, viewed from the "many" side
- Many-to-many: either side can link to several of the other
- A lookup column is how a one-to-many relationship appears on a form
One-to-many: one folder, many index cards
Picture the filing cabinet again. One folder in the Account drawer — "Contoso Ltd." — can hold many index cards from the Contact drawer: one per person who works there. That's a one-to-many relationship: one Account can link to many Contacts, but each Contact points back to only one Account.
Flip the point of view and it's the same relationship, described the other way. From a single Contact's seat, it belongs to exactly one Account. That reverse view is many-to-one — not a different relationship, just the same connection seen from the other table.
| Relationship type | Description | Example |
|---|---|---|
| One-to-many | One record on this side can relate to many on the other | One Account has many Contacts |
| Many-to-one | The same relationship, viewed from the "many" side | Many Contacts belong to one Account |
| Many-to-many | Either side can relate to many of the other | Contacts attending Events |
Many-to-many: everyone can be in more than one
Some connections have no single "owning" side. Think of a school class schedule: one student can take several classes, and one class holds many students. Neither side is capped at one — that's a many-to-many relationship. In Dynamics 365 CE, Contacts and Events work this way: one Contact can register for several Events, and one Event can hold many Contacts.
How relationships actually show up on screen
Users don't interact with "relationships" directly — they interact with a lookup column, the visible result of a one-to-many relationship. On a Contact form, the "Company Name" field that opens a search box to pick an Account is a lookup column: the on-form face of that relationship.
Many-to-many relationships don't get a single lookup column on either form, since neither side has just one related record to point to. Instead they typically show up as a related, sub-grid-style list — a list of Events on a Contact's form, or a list of registered Contacts on an Event's form.