QGIS e la RELAZIONE N:M

Una relazione N:M (molti a molti) si verifica quando più record in una tabella sono associati a più record in un’altra tabella. Ad esempio, tra particelle e proprietari (ambito catastale per esempio) è presente una relazione “molti a molti“: le particelle possono appartenere a diversi proprietari e i proprietari possono possedere diverse particelle.

In questo blog post vedremo come realizzare e gestire queste relazioni.

Per realizzare una relazione N:M occorre creare una terza tabella, chiamata associativa, caratterizzata da almeno due colonne che rappresentano che chiavi primarie delle precedenti due tabelle (particelle e proprietari) seguendo uno schema simile a quello rappresentato sotto:

creare due relazioni di progetto rel1 e rel2 a partire dallo schema di sopra:

sotto le tabelle degli attributi dei vari layer

Recuperare i dati tramite espressioni

l’etichetta visibile nell’immagine di sopra ha questa espressione (layer parcels):

"id_poly"
|| '\n' || -- nuova riga
array_to_string(
          relation_aggregate(
                       relation:='rel1',
                       aggregate:='array_agg',
                       expression:=attribute(
                           get_feature_by_id('owners',id_own),
                           'owners'))
                       )

per avere una lista di id_poly nella tabella owners utilizzare questa espressione:

array_to_string(
          relation_aggregate(
                       relation:='rel2',
                       aggregate:='array_agg',
                       expression:=attribute(
                           get_feature_by_id('parcels',id_poly),
                           'id_poly'))
                        )

Per selezionare i vari record, come nella gif animata di sopra, installare il plugin Select by relationship e configurarlo in questo modo:

NOTE FINALI: QGIS si dimostra un software completo anche dal punto di vista delle relazioni!!! Gestisce le relazioni 1:1, note come JOIN tabellare; relazioni 1:M, note come padre/figlio, relazioni N:M, note come molti a molti e infine le relazioni polimorfiche, note anche come relazioni dinamiche.


RIFERIMENTI


DATI e PROGETTO


I MIEI CANALI – ISCRIVITI


Se il blog post Ti è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!

SE IL POST/BLOG TI È STATO UTILE CONTRIBUISCI A MANTENERLO AGGIORNATO PAYPAL


6 pensieri su “QGIS e la RELAZIONE N:M

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.