You try to add a Relation property to a Notion database but the source database has a sub-item hierarchy. The Relation option appears grayed out or does not show the expected source database. This happens because Notion restricts Relation properties from pointing to databases that contain sub-items. This article explains the technical limitation and provides a workaround to connect data across hierarchical structures.
Key Takeaways: Why Relation Fails With Sub-Item Hierarchy
- Database > Add a property > Relation: The Relation option is unavailable if the source database has sub-items enabled.
- Sub-item hierarchy structure: A parent database with child rows cannot be used as a Relation source in any other database.
- Create a separate flat database: Duplicate the data without sub-items to use it as a Relation source.
Why Notion Blocks Relation Properties on Sub-Item Databases
Notion databases with sub-item hierarchy use a special internal structure where rows can be nested under parent rows. This nesting creates a parent-child relationship that conflicts with the way Relation properties link rows across databases. Relation properties rely on each row having a unique identifier that can be referenced externally. When sub-items exist, Notion cannot guarantee consistent referencing because child rows may be reordered, moved, or deleted within the hierarchy.
The engineering team at Notion designed the Relation property to work only with flat databases — databases where every row is at the same level. Allowing Relation to point to a hierarchical database would create circular references and data integrity issues. For example, if a parent row references a child row in another database, and that child row is later moved to a different parent, the reference breaks. To prevent this, Notion simply disables the Relation property selection when the source database has sub-items enabled.
The Sub-Item Database Toggle
You enable sub-items in a database by going to the top-right menu of the database view and toggling Sub-items on. Once turned on, every row can have child rows indented beneath it. This feature is useful for task breakdowns, project phases, or nested outlines. However, once enabled, you cannot use that database as a Relation source in any other database. The option simply does not appear in the Relation source dropdown.
Steps to Work Around the Sub-Item Relation Limitation
You have two main approaches: remove the sub-item hierarchy from the source database, or create a separate flat database that mirrors the hierarchical data. The second method preserves the original hierarchy while giving you a Relation-compatible source.
Method 1: Create a Flat Duplicate of the Source Database
- Duplicate the source database
Right-click the database name in the sidebar and select Duplicate. This creates a copy with all properties and rows. - Remove sub-items from the duplicate
Open the duplicate database. Click the three-dot menu in the top-right corner. Click Sub-items to turn off the toggle. All child rows will move to the top level. - Add a Relation property in the target database
Go to the database where you want the Relation. Click Add a property and select Relation. In the source dropdown, choose the flat duplicate database. - Link rows as needed
Click into the Relation cell in any row and select the corresponding row from the flat duplicate. The relationship now works correctly.
Method 2: Use a Rollup With a Formula Instead of Relation
- Add a Rollup property in the target database
Click Add a property and select Rollup. This property can pull data from a linked database even if the source has sub-items. - Create a formula to mimic Relation behavior
Add a Formula property. Use thelink()function to create a clickable link to the source row. For example:link("https://notion.so/" + prop("Source ID"))where Source ID is a text property containing the row ID. - Manually copy the row ID from the source
Open the source row, copy its URL, extract the ID after the last slash, and paste it into the Source ID property in the target database.
If Notion Still Refuses to Add the Relation
Source Database Shows Sub-Items Even After Toggle Off
If you turned off the sub-item toggle but the database still shows child rows, you may have manually indented rows using drag-and-drop. Indentation is not the same as the sub-item feature. To fully remove hierarchy, select all rows, right-click, and choose Remove indentation. Then verify the sub-item toggle is off.
Relation Source Dropdown Is Empty
If the dropdown shows no databases at all, ensure both databases are in the same workspace. Relation cannot cross workspace boundaries. Also check that you have at least Can edit permission on the source database. If you only have read access, the Relation option will not appear.
Relation Breaks After Adding Sub-Items Later
If you already have a working Relation pointing to a flat database and later enable sub-items on that database, the Relation will stop working. Notion will not warn you. The Relation property will show an error or become uneditable. To fix this, disable sub-items again or create a new flat duplicate as described in Method 1.
Flat Database vs Sub-Item Database for Relation Sources
| Item | Flat Database | Sub-Item Database |
|---|---|---|
| Relation source allowed | Yes | No |
| Row nesting | No | Yes |
| Linked database views | Yes | Yes |
| Rollup properties | Yes | Yes |
| Best for task breakdowns | No | Yes |
Notion allows Rollup and formula properties to work with sub-item databases because they do not require direct row-level references. Only the Relation property is blocked.
You can now work around the sub-item Relation limitation by using a flat duplicate database or by combining Rollup and formula properties. If you need both hierarchy and cross-database linking, consider using linked database views with filters instead of Relation. A concrete next step is to test Method 1 with a small sample database to ensure the duplicate stays in sync. For advanced workflows, use the Notion API to automate copying data from the hierarchical database to the flat duplicate every time a row is added or updated.