When you manage projects, tasks, or hierarchical data in Notion, you often need rows that belong under other rows. A parent project might have multiple tasks, and each task might have subtasks. Notion does not have a native sub-item feature like some project management tools. However, you can create nested rows using database relations, rollups, and linked views. This article explains how to set up parent-child relationships between database rows so you can organize work in a hierarchy without leaving Notion.
Key Takeaways: Setting Up Nested Rows in Notion Databases
- Relation property on the child database: Links each child row to a parent row in another database.
- Rollup property to show parent data: Displays the parent name, status, or due date directly in the child row.
- Linked database view filtered by relation: Shows only children of one parent inside the parent row’s page.
What Are Sub-Items in Notion and Why Use Them
Notion does not have a built-in sub-item feature like Microsoft Project or Asana. Instead, you create sub-items by linking two databases with a Relation property. One database holds parent rows, and another holds child rows. Each child row gets a relation that points to its parent. This approach gives you more flexibility than a single table with indented rows. You can filter, sort, and group child rows independently. You can also create multiple levels of nesting by adding more databases. The main prerequisite is that you have a Notion workspace where you can create databases and add properties.
When to Use Nested Database Rows
Nested rows work well for project planning, content calendars, company wikis, and any data that has a clear hierarchy. For example, a marketing team might have a Campaigns database and a Tasks database. Each task is a child of one campaign. A product team might have a Features database and a User Stories database. Each user story belongs to one feature. You can also nest three levels: Department > Project > Task. Each level uses its own database with a relation to the level above.
Steps to Create a Parent-Child Relation Between Two Databases
Follow these steps to link a parent database to a child database. For this example, the parent database is called Projects and the child database is called Tasks.
- Create the parent database
Create a new database in Notion by typing / and selecting Table, Board, or any view. Name it Projects. Add columns such as Status, Due Date, and Owner. - Create the child database
Create a second database and name it Tasks. Add columns such as Priority, Assigned To, and Deadline. - Add a Relation property to the child database
Open the Tasks database. Click the + button in the last column header. Select Relation. In the pop-up, choose the Projects database as the related table. Name the property Parent Project. Click Create Relation. - Add a Rollup property to show parent data (optional)
In the Tasks database, add a new column and select Rollup. Configure it to pull the Name property from the related Projects row. This displays the project name inside each task row. Name the column Project Name. - Link a task to a parent project
In any task row, click the Parent Project cell. A menu opens showing all projects. Select the parent project. The project name now appears in the relation cell. If you added the rollup, the project name also appears in the Project Name column. - View all tasks inside a parent page
Open the Projects database. Click into a specific project page. Type / and select Linked view of database. Choose the Tasks database. In the filter options, set the filter to Parent Project contains the current page name. Now the project page shows only its own tasks.
Adding a Third Level of Nesting
To create a third level, repeat steps 2 through 4 with a new database called Subtasks. Add a Relation property in Subtasks that points to the Tasks database. Then add a Linked view of Subtasks inside each task page, filtered by the relation. This gives you Projects > Tasks > Subtasks.
Common Mistakes and Limitations When Setting Up Sub-Items
Relation Shows All Rows Instead of Filtered Children
When you open a parent page and add a linked database view, the view might show all tasks instead of only the children. The fix is to apply a filter on the linked view. Click the filter icon at the top right of the linked view. Set the condition to Parent Project contains the current page name. If the relation property is named differently, use that property name.
Rollup Shows Wrong Data After Adding New Rows
A rollup property updates automatically when you change the related row. If the rollup displays incorrect data, check that the relation cell in the child row points to the correct parent. Also verify that the rollup configuration is set to the right property. For example, if you want to show the parent’s due date, select Due Date in the rollup setup.
Cannot Create a Sub-Item Inside the Same Database
Notion does not support inline sub-rows in a single table. You must use two separate databases connected by a relation. If you need a flat list with indentation, consider using a single database with a self-referencing relation. Add a Relation property that points to the same database. Then each row can link to a parent row in the same table. This simulates indented sub-items but requires careful filtering to avoid circular references.
Linked View Does Not Update Automatically
Linked database views in Notion refresh when you reload the page or switch views. If you add a new child row while viewing the parent page, the linked view may not show it immediately. Refresh the page by pressing F5 or by clicking the browser refresh button. The new row appears after the refresh.
Parent-Child Relation vs Self-Referencing Relation
| Item | Two-Database Relation | Self-Referencing Relation |
|---|---|---|
| Setup | Create two separate databases and link them with a Relation property | Add a Relation property in the same database that points to itself |
| Best for | Different types of items, such as Projects and Tasks | Same type of items, such as Tasks with subtasks |
| Rollup support | Can rollup data from parent to child and vice versa | Can rollup data from parent to child but may create circular rollups |
| Filtering | Filter linked views by the relation property | Filter linked views by the self-referencing relation, but avoid showing the parent itself |
| Example | Projects database linked to Tasks database | Tasks database where each task can have a parent task |
The two-database approach is clearer for most use cases. The self-referencing approach works when you want all items in one table but still need hierarchy. Both methods let you create nested rows without a native sub-item feature.
You can now set up nested database rows in Notion using relations, rollups, and linked views. Start by creating a parent database and a child database, then add a relation property to link them. For deeper nesting, repeat the process with additional databases. Try using the self-referencing relation if you prefer a single table with hierarchical rows. An advanced tip is to use a Formula property to automatically display the parent name or path, such as prop(“Parent Project”).format() + ” > ” + prop(“Name”), which creates a breadcrumb trail inside each row.