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
- QGIS : https://www.qgis.org/it/site/
- Plugin Select by RelationShip : https://plugins.qgis.org/plugins/SelectByRelationship/
- StackExchange : https://gis.stackexchange.com/questions/417877/qgis-setup-nm-relation-to-enable-cross-layer-search
- Guida HfcQGIS : https://hfcqgis.opendatasicilia.it/
- diagrams.net (app da gdrive) : https://www.diagrams.net/
DATI e PROGETTO
I MIEI CANALI – ISCRIVITI
- Telegram : https://t.me/pigrecoinfinito
- YouTube : https://www.youtube.com/c/TotòFiandaca
Se il blog post Ti è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!
Post utilissimo. Grazie
"Mi piace"Piace a 1 persona
Grazie per aver lasciato un commento!
"Mi piace""Mi piace"
Grazie Totò, i tuoi interventi sono sempre una miniera d’oro.
"Mi piace"Piace a 1 persona
Grazie mille!
"Mi piace""Mi piace"
It’s very cool. Thsnks !
"Mi piace""Mi piace"
Grazie mille!
"Mi piace""Mi piace"