<div dir="ltr"><div class="gmail_default" style="font-family:garamond,serif;font-size:large"><div style="font-family:arial,sans-serif;font-size:12.8px">Ciao Giuseppe ti rispondo:</div><div style="font-family:arial,sans-serif;font-size:12.8px"><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><u>domanda:</u></div><div style="font-family:arial,sans-serif;font-size:12.8px">giusto una curiosità, se la tabella B è solo "geometrica" e la relazione con la tab A è 1:1, immagino che nel tuo schema ad ogni record di A può corrispondere solo 1 record di B, quindi 1 sola geometria... c'è un motivo particolare per cui hai deciso di dividere le 2 tabelle e non inserire direttamente un campo geometrico in A?</div><div style="font-family:arial,sans-serif;font-size:12.8px"><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><u>risposta:</u></div><div style="font-family:arial,sans-serif;font-size:12.8px">i motivi sono vari:</div><div style="font-family:arial,sans-serif;font-size:12.8px">1. le due tabelle sono nate in tempi diversi;</div><div style="font-family:arial,sans-serif;font-size:12.8px">2. per motivi di chiarezza ho suddiviso il mio DB PostgreSQL 9.3.9 in tre schemi (tabelle solo dati, tabelle con geometry, strati di sfondo) come hai capito lavoro spesso con QGIS;</div><div style="font-family:arial,sans-serif;font-size:12.8px">3. nella tabella B, quella con geometria in realtà contiene anche altri dati;</div><div style="font-family:arial,sans-serif;font-size:12.8px">4. mi piace percorrere strade nuove per fare esperienza, come in questo caso;</div><div style="font-family:arial,sans-serif;font-size:12.8px"><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><u>domanda</u>:</div><div style="font-family:arial,sans-serif;font-size:12.8px"><span style="font-size:12.8px">Altra osservazione banale, se c'è una logica sottesa al tipo di struttura usata per il db, per la quale hai bisogno di 2 tabelle, se la fk di B e la pk di A devono essere "sincronizzate" perché non eliminare il campo B.gid e utilizzare B.id sia come pk (serial oppure integer + sequenza di default) che come fk?</span><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><u>risposta</u>:</div><div style="font-family:arial,sans-serif;font-size:12.8px">ottima osservazione, ma a questo punto se dovessi fare delle modifiche preferirei unire le due tabelle;</div><div style="font-family:arial,sans-serif;font-size:12.8px"><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><u>domanda</u>:</div><div style="font-family:arial,sans-serif;font-size:12.8px"><span style="font-size:12.8px">E ancora, teniamo sempre buone le 2 tabelle, se non ho capito male lavori prevalentemente sulla tab B, quella "geometrica", da qgis...giusto? In questo caso non conviene "invertire" le fk? Cioè inserire una fk in A verso B, in questo modo dovrebbe essere più semplice gestire l'integrità referenziale: se cancelli una geometria, a cascata cancelli anche il record alfanumerico senza bisogno di procedure più complesse, evitando al tempo stesso di avere orfani in A.</span><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-family:arial,sans-serif;font-size:12.8px"><div style="font-size:12.8px"><u>risposta</u>:</div><div style="font-size:12.8px">ottima osservazione, ma a questo punto se dovessi fare delle modifiche preferirei unire le due tabelle;</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><u>domanda</u>:</div><div style="font-size:12.8px"><span style="font-size:12.8px">E infine, che versione di postgres usi? Hai provato le viste materializzate?</span><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><u>risposta</u>:</span></div><div style="font-size:12.8px"><span style="font-size:12.8px">PostgreSQL 9.3.9/ PostGIS 2.1.7; è la prima volta che sento parlare delle viste materializzate, da una rapida richerca ho visto che sono molto interessanti.</span><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">ciao e grazie </span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">PS: utilizzo da poco PostgreSQL/PostGIS e da autodidatta.</span></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">Il giorno 25 settembre 2015 15:26, Giuseppe Naponiello <span dir="ltr"><<a href="mailto:beppenapo@gmail.com" target="_blank">beppenapo@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Ciao,<div>giusto una curiosità, se la tabella B è solo "geometrica" e la relazione con la tab A è 1:1, immagino che nel tuo schema ad ogni record di A può corrispondere solo 1 record di B, quindi 1 sola geometria... c'è un motivo particolare per cui hai deciso di dividere le 2 tabelle e non inserire direttamente un campo geometrico in A?</div><div>Altra osservazione banale, se c'è una logica sottesa al tipo di struttura usata per il db, per la quale hai bisogno di 2 tabelle, se la fk di B e la pk di A devono essere "sincronizzate" perché non eliminare il campo B.gid e utilizzare B.id sia come pk (serial oppure integer + sequenza di default) che come fk?</div><div>E ancora, teniamo sempre buone le 2 tabelle, se non ho capito male lavori prevalentemente sulla tab B, quella "geometrica", da qgis...giusto? In questo caso non conviene "invertire" le fk? Cioè inserire una fk in A verso B, in questo modo dovrebbe essere più semplice gestire l'integrità referenziale: se cancelli una geometria, a cascata cancelli anche il record alfanumerico senza bisogno di procedure più complesse, evitando al tempo stesso di avere orfani in A.</div><div>E infine, che versione di postgres usi? Hai provato le viste materializzate?</div><div><br></div><div>-beppe-</div><div><br></div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">Il giorno 25 settembre 2015 14:47, Totò Fiandaca <span dir="ltr"><<a href="mailto:pigrecoinfinito@gmail.com" target="_blank">pigrecoinfinito@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:garamond,serif;font-size:large">aggiungo qualche altro dettaglio,</div><div class="gmail_default" style="font-family:garamond,serif;font-size:large">come ho già scritto  le due tabelle sono in relazione 1:1, la tabella A (ID <u>serial </u>not null (pk), ....) contiene solo dati alfanumerici e la tabella B ha (per il momento) solo tre campi (gid <u>serial </u>not null (pk), geom <u>geometry</u>, ID <u>integer </u>(fk));</div><div class="gmail_default" style="font-family:garamond,serif;font-size:large">caricando la vista in QGIS, il primo inserimento è sulla tabella B (inserisco la geometria) quindi scatta la sequenza della gid (che è pk autoincremetale tabella B), lastval() prende (credo) questo valore, valore che ha la stessa sequenza di ID tabella A (sono in relazione 1:1).</div><div class="gmail_default" style="font-family:garamond,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:garamond,serif;font-size:large">ho fatto, velocemente, altre prove con le diverse funzioni sequenza (es. currval) ma non ho ottenuto l'esito voluto.</div><div class="gmail_default" style="font-family:garamond,serif;font-size:large"><br></div><div class="gmail_default" style="font-family:garamond,serif;font-size:large">secondo te potrei migliorare qualcosa?</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>Il giorno 25 settembre 2015 14:01, francesco marucci <span dir="ltr"><<a href="mailto:francesco.marucci@gmail.com" target="_blank">francesco.marucci@gmail.com</a>></span> ha scritto:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div>quindi ci confermi che ad un insert sulla vista viene effettuato il PRIMO insert nella tabella A (facendo scattare la sequenza) e il SECONDO nella tabella B (sfruttando l'ultimo valore della sequenza), sempre in questo ordine?<br></div><div>altrimenti il tuo giochino non funzionerebbe mica...<br></div><span><div><br><div><div class="gmail_extra"><br><div class="gmail_quote">Il giorno 25 settembre 2015 13:41, Totò Fiandaca <span dir="ltr"><<a href="mailto:pigrecoinfinito@gmail.com" target="_blank">pigrecoinfinito@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-family:garamond,serif;font-size:large">FANTASTICO!!!!</div><div style="font-family:garamond,serif;font-size:large"><br></div><div style="font-family:garamond,serif;font-size:large">grazie al consiglio di Francesco ho ottenuto il risultato auspicato, semplicemente aggiungendo:</div><div style="font-family:garamond,serif;font-size:large"><br></div><div style="font-family:garamond,serif;font-size:large">Default value = lastval().</div><div style="font-family:garamond,serif;font-size:large"><br></div><div style="font-family:garamond,serif;font-size:large">grazie!!!</div><div style="font-family:garamond,serif;font-size:large"><br></div><div style="font-family:garamond,serif;font-size:large">saluti</div></div><div class="gmail_extra"><div><div><br></div></div></div></blockquote></div><br></div></div></div></span></div>
<br></div></div><span>_______________________________________________<br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" rel="noreferrer" target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.<br>
750 iscritti al 18.3.2015<br></span></blockquote></div><span><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="2"><font face="garamond, serif"><b>Salvatore Fiandaca</b><br><b>mobile</b>.:<a href="tel:%2B39%20327.493.8955" value="+393274938955" target="_blank">+39 327.493.8955</a> <br><b>m</b>: <b><a href="mailto:pigrecoinfinito@gmail.com" target="_blank">pig<span></span><span></span>recoinfinito@gmail.com</a></b></font></font></div><div dir="ltr"><font face="garamond, serif"><font size="2">43°51'0.54"N  10°34'27.62"E - EPSG:4326</font></font></div><div dir="ltr"><font face="garamond, serif"><font size="2"><br></font></font><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</span></div>
<br>_______________________________________________<br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" rel="noreferrer" target="_blank">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.<br>
750 iscritti al 18.3.2015<br></blockquote></div><br><br clear="all"><div><br></div>-- <br></div></div><div><div dir="ltr"><div><font color="#000000" size="2"><b><u>Giuseppe Naponiello</u></b></font></div><div><font color="#000000" size="2"><b><u><br></u></b></font></div><div><b style="color:rgb(136,136,136)"><font size="4"><font color="#ff0000">A</font></font></b><b><font size="4" color="#000000">rc-</font></b><b style="color:rgb(136,136,136)"><font size="4"><font color="#ff0000">T</font></font></b><b><font size="4" color="#000000">eam srl</font></b><br style="color:rgb(136,136,136)"><font color="#000000">piazza Navarrino, 13 - 38023Cles (TN) <br>C.F. e P. IVA IT-01941600221 <br>cell.</font><font color="#888888"> </font><a value="+393476846599" style="color:rgb(17,85,204)">+393476846599</a><br style="color:rgb(136,136,136)"><font color="#000000">mail:</font><font color="#888888"> </font><a href="mailto:beppenapo@arc-team.com" style="color:rgb(17,85,204)" target="_blank">beppenapo@arc-team.com</a><br style="color:rgb(136,136,136)"><font color="#000000">pec:</font><font color="#888888"> </font><a href="mailto:arc-team@pec.it" style="color:rgb(17,85,204)" target="_blank">arc-team@pec.it</a><br style="color:rgb(136,136,136)"><font color="#000000"><a href="http://www.arc-team.com/" style="color:rgb(17,85,204)" target="_blank">www.arc-team.com</a></font><br style="color:rgb(136,136,136)"><a href="http://arc-team-open-research.blogspot.it/" style="color:rgb(17,85,204)" target="_blank">http://arc-team-open-research.blogspot.it/</a><br></div></div></div>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="2"><font face="garamond, serif"><b>Salvatore Fiandaca</b><br><b>mobile</b>.:+39 327.493.8955 <br><b>m</b>: <b><a href="mailto:pigrecoinfinito@gmail.com" target="_blank">pig<span></span><span></span>recoinfinito@gmail.com</a></b></font></font></div><div dir="ltr"><font face="garamond, serif"><font size="2">43°51'0.54"N  10°34'27.62"E - EPSG:4326</font></font></div><div dir="ltr"><font face="garamond, serif"><font size="2"><br></font></font><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>