2012-04-09 2 views
0

Wenn Sie mit räumlichen Daten in einer Datenbank wie Postgis arbeiten, ist es eine gute Möglichkeit, bei jedem SELECT die Schnittpunkte von zwei Polygonen oder die Fläche von Polygonen zu berechnen? Oder ist es für Leistungsprobleme besser, die Berechnungen für eine INSERT-, eine UPDATE- oder eine DELETE-Anweisung auszuführen und die Ergebnisse in einer Spalte der Tabellen zu speichern? Wie ist der Ansatz in großen räumlichen Datenbanken?Berechnen oder Speichern räumlicher Daten

Danke für eine Antwort.

Antwort

0

Die Frage ist zu abstrakt.

Wenn Sie den Schnittbereich (ST_Intersection) verwenden, sollten Sie natürlich das Ergebnis der Geometrie ST_Intersection speichern. In der Praxis müssen wir jedoch häufig den Schnittpunkt im Flug berechnen, da die Eingangsargumente von dynamischen Parametern abhängen (z. B. Schnittpunkt eines Gebiets mit der Temperatur 30 ° C und einer Windfläche von> 20 ms). Übrigens können Sie mit VIEW eine Abfrage auf diese Weise vereinfachen.

Natürlich, wenn Ihre Tabelle beide geometrische Spaltenargumente enthält oder einer davon konstant ist, ist es besser, den Schnittpunkt zu speichern. Insbesondere können Sie räumliche Indizes für diese Spalte erstellen.

Es gibt keine konstanten Regeln. Sie sollten sich an den Übungsbedingungen orientieren: Größe der Datenbank, Benutzungsart usw. Zum Beispiel speichere ich die generierte Ellipse (Glaubenszone) für den Punkt des Blitzschlags, aber ich speichere keine Fakten der Schnittmengen (boolesch) mit Powerlines, weil diese Intersektionen können parametrisiert werden.