mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
4.6 KiB
105 lines
4.6 KiB
1 year ago
|
---
|
||
|
title: "Links"
|
||
|
description: "Understanding Link Columns!"
|
||
|
---
|
||
|
|
||
|
### Supported relationship types:
|
||
|
|
||
|
- One to many
|
||
|
- A Table record in first table is related to more than one record of second table. But second table record maps to only one entry of first table
|
||
|
- NocoDB refers to this category of relationship as **has many**
|
||
|
- For every **has many** relation defined, NocoDB augments **belongs to** relationship column in the adjacent table automatically
|
||
|
- Example: Country **has many** Cities. (other way mapping > City **belongs to** Country )
|
||
|
- Many to many
|
||
|
- A Table record in first table is related to more than one record of second table; second table record can also map to more than on record of first table.
|
||
|
- NocoDB refers to this category of relationship as **many to many**
|
||
|
- For every **many to many** relation defined between tables, NocoDB augments **many to many** relationship column in the other table automatically
|
||
|
- Example: Film **has many** Actors. Actor **has many** Films (works on many films)
|
||
|
|
||
|
Further details of relationship types can be found [here](https://afteracademy.com/blog/what-are-the-different-types-of-relationships-in-dbms)
|
||
|
|
||
|
From Release v0.110.0, table records can be connected through relationships using the **Links** column type.
|
||
|
It is important to note that, earlier supported column type **LinkToAnotherRecord** for creating relations is considered deprecated. While the old datatype is still supported for backward compatibility, it is no longer possible to create new fields of that type.
|
||
|
|
||
|
The main distinction between these two column types lies in how the contents are displayed within the cell when links are established between two tables. With the **LinkToAnotherRecord** column type, the cell displays the **Primary value** of the related records. On the other hand, the **Links** column type only shows the **count** of related records.
|
||
|
The decision to switch over to new column type was made to ensure better performance and scalability of the application, more so when the records & the number of records in the related table is large.
|
||
|
|
||
|
Child list to display the related records can be accessed by clicking on the link count displayed on the cell.
|
||
|
Except for the column type, the following procedures remain same as before
|
||
|
- Create, update & delete a relationship column,
|
||
|
- Link & unlink a record,
|
||
|
- Create a lookup and rollup columns
|
||
|
|
||
|
Workflow details are captured below.
|
||
|
|
||
|
## Adding a relationship
|
||
|
|
||
|
![Screenshot 2023-06-27 at 11 03 20 AM](https://github.com/nocodb/nocodb/assets/86527202/b3762fc8-4bba-42ef-8415-41428840ee0e)
|
||
|
|
||
|
|
||
|
1. Create column
|
||
|
Click on '+' button at end of column headers
|
||
|
|
||
|
2. Update column name
|
||
|
Input name in the text box provided
|
||
|
|
||
|
3. Select column type
|
||
|
Select Column type as "Links" from the drop-down menu
|
||
|
|
||
|
4. Choose relationship type
|
||
|
- 'Has Many' corresponds to the 'One-to-many' relationships
|
||
|
- 'Many To Many' corresponds to the 'Many-to-many' relationships
|
||
|
|
||
|
5. Select child table from drop down menu
|
||
|
|
||
|
6. Click on 'Save'
|
||
|
A new column will get created in both the parent table & child table
|
||
|
|
||
|
## Linking records
|
||
|
|
||
|
### 1. Open link record tab
|
||
|
|
||
|
Click on the '+' icon in corresponding row - cell
|
||
|
![Screenshot 2023-06-27 at 11 06 52 AM](https://github.com/nocodb/nocodb/assets/86527202/96a90a6d-544e-4e43-b6d1-fe1aef784257)
|
||
|
|
||
|
### 2. Select from the option displayed
|
||
|
|
||
|
Use 'Filter box' to narrow down on search items.
|
||
|
You can opt to insert a new record as well, using "+ New Record" button.
|
||
|
You can use `ALT + Click` to insert multiple options together.
|
||
|
|
||
|
![Screenshot 2023-06-27 at 11 08 40 AM](https://github.com/nocodb/nocodb/assets/86527202/68246783-8d01-488b-8926-644fca8fa164)
|
||
|
|
||
|
### 3. Column display for "Has Many" relationship
|
||
|
|
||
|
Country 'has many' City
|
||
|
|
||
|
![Screenshot 2023-06-27 at 11 11 50 AM](https://github.com/nocodb/nocodb/assets/86527202/b5bb62b7-37ad-480e-8bf2-d666b775b07a)
|
||
|
|
||
|
|
||
|
### 4. Column display for "Belongs to" relationship [Automatically updated]
|
||
|
|
||
|
City 'belongs to' Country.
|
||
|
Note: Primary value is still used as cell display value for "Belongs to" as it can have only one associated record.
|
||
|
|
||
|
![Screenshot 2023-06-27 at 11 12 27 AM](https://github.com/nocodb/nocodb/assets/86527202/54e9ee75-4af5-49f6-8cd9-275dc53a8915)
|
||
|
|
||
|
|
||
|
## Unlinking records
|
||
|
|
||
|
1. Click on link count to open Child modal
|
||
|
2. Click on Unlink icon against required item
|
||
|
|
||
|
![Screenshot 2023-06-27 at 11 22 00 AM](https://github.com/nocodb/nocodb/assets/86527202/dad3cbc7-289d-45a7-9c49-a72264ed36b1)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
## Link label reconfiguration
|
||
|
|
||
|
Use column edit menu for **Links** to reconfigure display label
|
||
|
|
||
|
![Screenshot 2023-06-27 at 11 16 19 AM](https://github.com/nocodb/nocodb/assets/86527202/1aabdd8c-7102-4917-b0c0-b72e1187b0b7)
|
||
|
|