[Gfoss] Postgres e View incompatibili con Qgis - vecchio problema

Luca Sigfrido Percich sigfrido a tiscali.it
Mer 1 Giu 2011 14:30:17 CEST


Ciao Luca,

dipende da come vuoi rappresentare i dati dei reperti avendo come
geometria quella degli strati:

1. Se vuoi mappare i singoli reperti, fai un Join tra strati e reperti
senza group by; logicamente l'ID di questa view è l'ID univoco dei
reperti e tutti i reperti appartenenti allo stesso strato avranno la
stessa geometria poligonale dello strato, che è poco pratico per
l'interrogazione e inutile per la tematizzazione

2. Se vuoi rappresentare dati di sintesi sui reperti agganciati agli
strati, crei prima una view facendo una select su reperti con group by
sulla chiave esterna verso strati, quindi l'id della view sarà quello
degli strati, e aggiungerai degli aggregati sui dati dei reperti (min
max med su datazione, conteggio reperti etc); poi una seconda view che
unisce in un join 1:1 la prima view con la tabella strati

Ma hai una chiave primaria composta da sito, area e us?

Un giorno in cui sarò in buona aprirò una discussione sul perché i
nostri amati software ci debbano costringere a usare chiavi primarie
intere e a singolo campo :)

Sig

Il giorno mer, 01/06/2011 alle 13.56 +0200, Luca Mandolesi ha scritto:
> Ciao a tutti,
> stamane sono andato a riprendere in mano un mio vecchio problema di visualizzazioni di view tra Qgis e Postgres, memore di una discussione aperta daAndrea Peri un po' di tempo fa [0].
> Tuttavia non ho trovato il modo di far funzionare tale soluzione con il mio caso che ora vi spiego, utilizzando nel concreto il mio caso in archeologia:
> in postgres ho:
> US: layer "strati" con campi gid, sito, area, us e the_geom
> US_table: tabella alfanumerica con dati relativi agli strati e i campi che la identificano: sito, area, us
> Reperti_table: tabella alfanumerica reperti con dentro i reperti di ogni strato e i dati relativi agli strati: sito, area, us
> 
> US 1:1 US_table
> US_table 1:N Reperti_table
> 
> 
> A questo punto ho una view US_+_US_table_view per visualizare i dati degli strati facendo un join sui campi sito, area, us tra US e US_table
> e tutto fila liscio.
> Ma se provo a fondere la US_+_US_table_view con Reperti_table, dove per 1 record di US_+_US_table_view ho N record di Reperti_table, Qgis non ha piùun id univoco per caricare le geometrie.
> Ho provato il metodo di cui sotto [1], ma oltre ad id e geometria, devo portare nella view altri campi come sito, area, us per fare le analisi su Qgis, e ovviamente sono obbligato a inserirle nel group_by (e questo non lo capisco), quindi non posso più avere id univoco.
> 
> Quindi, nella sostanza, non capisco come fare un join tra 2 tabelle, quando sono in rapporto N:N e fare in modo che la vista sia valida per Qgis.
> 
> Ci può essere una strada percorribile?
> 
> ciao e grazie
> 
> luca
> 
> [0]: http://www.mail-archive.com/gfoss@faunalia.it/msg02284.html
> 
> [1]:
> create view1 as
> select id as new_id, ST_Union(geometry) as new_geom from table group by id
> 
> create view2 as
> select new_id, new_geom from view1;
> 
> 
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 502 iscritti all'11.2.2011



Maggiori informazioni sulla lista Gfoss