# How to Link Multiple Records to One Feature (1-N Relations)

TIP

You can clone these projects to take a closer look on 1-N relations:

It is often the case that you have a set of spatial features and you want to record some parameters every now and then. For example, there is a GIS layer representing the manholes and the surveyors carry out regular inspections of the manholes. Instead of duplicating the manhole layer and recording each inspection, you can create a non-spatial table and store each inspection as a new row.

The image below shows the manholes locations:

Manhole locations

The manhole point layer has the following attribute table:

Manhole locations

In a separate non-spatial table, we can record the inspections:

Manhole locations

In QGIS, we are using the Manhole ID from the point layer and the inspection table to create a 1-N relation between the two tables.

The same principle can be used when you want to capture multiple photos for a single feature.

# Project setup in QGIS

You can follow this example by cloning Mergin Maps Project documentation/forms_one-to-many-relations documentation/forms_one-to-many-relations (opens new window).

To configure 1-N relations in QGIS:

  1. From the main menu, select Projects > Properties ...
  2. In the Relations tab, select Add Relation
    relations
  3. A new window will appear, where we can define the parent and child layers and the fields to link the two layers:
    • Name is the name of the relation, e.g. Inspection
    • Referenced (parent) is the spatial layer manhole_locations
    • Field 1 of the Referenced (parent) is the field Manhole that contains the ID
    • Referencing (child) is the non-spatial layer inspections
    • Field 1 of the Referencing (child) layer is the Manhole ID, which acts as a foreign key to link inspections to spatial features.

1-N relations in QGIS

  1. Right-click on the survey layer, select Properties and go to the Attributes form tab.
  2. Drag and drop the Inspections relation to the Form Layout.

form

This now allows you to add multiple inspections for each manhole location (manhole_locations point layer). The inspections records will be stored in the inspections table.

When you open the form for an existing record in the manhole_locations point layer, you will be able to see the existing inspection records and optionally add, delete or edit the records:

1-N relations in QGIS - form view

In Mergin Maps Input, the form will look like this:

Many photos to a single feature