Das ist eine konzeptionelle Frage, aber ich hätte es schon lange in diesem Forum fragen sollen.Gestaltete PostGIS-Datenbank ... Punkte-Tabelle und Polygon-Tabellen ... Wie effizienter machen?
Ich habe eine PostGIS-Datenbank, und ich habe viele Tabellen darin. Ich habe einige über die Verwendung von Schlüsseln in Datenbanken recherchiert, aber ich bin mir nicht sicher, wie man Schlüssel im Fall der Punktdaten einbaut, die dynamisch sind und mit der Zeit zunehmen.
Ich speichere Punktdaten in einer Tabelle, und diese Daten werden jeden Tag größer. Es ist ungefähr 10 Millionen Zeilen im Moment und wird wahrscheinlich etwa 10 Millionen Zeilen pro Jahr wachsen. Es gibt die Spalten lat, lon, time und the_geom.
I mehrere andere Tische haben, die jeweils verschiedene Polygongruppen (umgewandelte Formdateien auf Tabellen mit shp2pgsql), wie Bezirke, Zustände, usw.
I Abfragen bin zu schreiben, die die Punktdaten an die räumlichen Tabellen beziehen sich auf Sehen Sie, ob Punkte innerhalb der Polygone sind, was zu Dingen wie "55 Punkte im X-Polygon in den letzten 24 Stunden" usw. führt
Das Problem ist, ich habe keinen Schlüssel, der die Punkttabelle mit der verbindet andere Tabellen. Ich denke, das hemmt wahrscheinlich die Abfrageeffizienz, aber ich bin mir nicht sicher.
Ich weiß, diese Frage ist ziemlich vage, und ich bin glücklich, alles zu klären, aber ich habe im Grunde eine Reihe von Punkten in einer Tabelle, die ich räumlich mit anderen Tabellen vergleiche, und ich versuche, die zu finden beste Art, Dinge zu gestalten.
Danke für jede Hilfe!
Danke! Ich denke ich tracking. Wenn ich Punktdaten einfüge (die ich im Prinzip alle 10 Minuten aus einer CSV-Datei kopiere), kann ich nach der Kopie, die eine räumliche Abfrage für Städte oder Bezirke in den Zeilen der letzten 10 Minuten und Updates ausführt, eine Aktualisierungsanweisung ausführen ein Feld wie "Stadt" oder "Kreis" als Fremdschlüssel ausfüllen? Auf eine kleine Randnotiz, aber sicherlich verwandt, eine Abfrage, die ich schmerzlich langsam gefunden habe (und bisher nie erfolgreich) ist ein ST_DWithin auf 24 Stunden Punktdaten innerhalb 5000m eines Polygons. – user1610717