Optional relationships in Notion
Some database love
If you’re currently using Notion, chances are your workspace is in one of these two situations:
- No structure, and a mayhem of pages inside pages, with approximately a 1% chance of finding what you’re looking for.
- A database-first designed workspace where each item belongs to a strongly structured database.
Some cool kids in the back might argue that Notion released the Wiki feature to offer the “best of both worlds”, but Matthias Frank settled the debate a few weeks ago
— and oh boy, is he right. So, it’s only a matter of time before your workspace gets nuked or transforms into situation 2 after a bit of consulting from a Notion expert.
Using relations and rollups
If you’re happily using a database-first workspace, chances are your databases are related using relation columns, and benefit from rollup values that are taken from those relation columns. This is great, but I’ve run into a few situations where these “forced” relationships became problematic.
Optional relationships in Notion
Here’s an example of what I’m talking about: let’s say you have a Notes
database, a Projects
database, and a Clients
database (or any A → B → C relationship). In a perfect world, you always write a note for a specific project, that is already linked to a specific client. But what if you want to write a note that’s not tied to a specific project — just to the client in general?
We could always link the note to a random project, make a dummy project, link to all projects of a specific client… But that’s not ideal. Here’s a solution using Notion automations that allows for optional relationships — no rollups required.
Automations to the rescue
- In this solution, all three databases have relationship columns.
- No rollup is involved (which is something we’d use traditionally to get the client column from the linked project of each note).
- Instead, we set up an automation in the Notes database like this:
.png)
.png)
Note
to a Project
or directly to a Client
. If you associate it to a Project
, the Client
column will be filled automatically, thanks to the automation. This approach has a few drawbacks, of course, but it’s a simple enough solution to handle optional relationships within Notion.Here’s a compressed and ugly .gif to see how it works
