What a Relation Is
A relation is a database property whose values are pages from another database. Where a text column holds words, a relation column holds live links: each Task points at the Project it belongs to, each Meeting Note points at the Client it concerns. Notion's own canonical example is Customers ↔ Items Purchased — one relation, readable from both sides.
In graph terms (and this framing will pay off below): your pages are nodes, and every relation you add defines a typed edge between two of them. That's different from backlinks, which are free-form edges created by @-mentions — relations are deliberate, structured, and attached to database schemas.
Creating a Relation, Step by Step
- In your database, add a new property and choose the Relation type.
- Pick the target database (e.g., from Tasks, pick Projects).
- Confirm — the new column's cells now open a picker of pages from the target database.
- Optionally limit the property to 1 page per entry (perfect for strict one-to-one links like order ↔ receipt); default is no limit.
Make it two-way
Relations are one-way by default: Tasks see their Project, but Projects don't list their Tasks. Toggle "Show on [related database]" while creating the relation and name the mirrored property — now edits sync in both directions, and both databases show the connection.
Relate a database to itself
A database can relate to itself — the classic uses are hierarchies (a "Parent task" relation inside Tasks) and networks (a "Related notes" relation inside Notes). Self-relations are exactly how a flat notes table quietly becomes a knowledge network.
Rollups: Reading Data Through Relations
A rollup is a property that aggregates values from related pages. It needs three choices: which relation to look through, which property of the related pages to read, and how to calculate (show originals, count, sum, average, percent complete, earliest date…).
| You want | Relation | Rollup setup |
|---|---|---|
| Open tasks per project | Project ↔ Tasks | Status → Count per group |
| Customer lifetime spend | Customer ↔ Orders | Amount → Sum |
| Project progress bar | Project ↔ Tasks | Done (checkbox) → Percent checked |
One hard rule: you can't roll up a rollup — Notion blocks it to prevent circular references. Aggregations reach exactly one relation-hop. If you need a two-hop answer, add a direct relation or restructure.
Where Relations Hit Their Ceiling
- You see cells, not structure. A relation column shows links one row at a time. Nobody can look at three related databases and say what the overall network looks like.
- Auditing is manual. Which projects have no notes? Which notes connect to nothing? Rollups can count per-row, but there's no workspace-level view of connection health.
- Complexity hides. Mature workspaces accumulate dozens of relations; the model in your head and the model in the schema drift apart silently.
Relations Are Edges — See Them That Way
Everything a relation encodes is graph data: pages as nodes, relations (and backlinks, mentions, sub-page nesting) as edges. IVGraph reads your workspace via the official API and renders that structure in interactive 3D — the Projects↔Tasks↔Notes triangle from your second brain stops being an abstraction and becomes a visible shape, with hubs, clusters, and the unconnected leftovers in plain sight. It's the missing "schema view" for a relational Notion workspace — as we covered in Does Notion Have a Graph View?, nothing native does this.
FAQ
Relation vs rollup — one sentence each?
Relation: the link between databases. Rollup: the calculation that reads through the link. No relation, no rollup.
How do I make an existing relation two-way?
Open the relation property's settings and enable "Show on [related database]" — the mirrored property appears on the other side and stays in sync.
Can a rollup see two hops away?
No — one hop only, and rollups of rollups are blocked. Add a direct relation for multi-hop questions.
How do I visualize my database relations?
Connect the workspace to IVGraph — every relation renders as an edge in a 3D graph, free up to 500 nodes.