Frage

Ich interessiere mich für Best Practices für die Gestaltung von relationalen DB-Tabellen für die Aufbewahrung von räumlich-zeitlichen Daten. Insbesondere Daten, die in solchen Tabellen aufbewahrt werden, sind benutzerdefinierte Geometrien mit einer bestimmten Gültigkeitsdauer, Geometriedefinition sowie hierarchischer Aspekt (bestimmte Geometrien werden Kinder anderer Geometrien sein).

Ich bin gespannt, ob mich jemand auf ein gutes Material zu diesem Thema verweisen kann oder eine bestimmte Implementierung vorschlagen könnte.

Vielen Dank.

War es hilfreich?

Lösung

Ich würde Postgis verwenden (http://postgis.refractions.net/) Für Geometrieart und eine Tabelle wie folgt machen:

CREATE TABLE data (
    geometry geometry,
  valid_from timestamp,
  valid_till timestamp,
  check(valid_till >= valid_from)
);

Postgis können räumliche Abfragen machen, sodass Sie die Datenbank für alle Geometrien in einer bestimmten Geometrie abfragen können (z. B. Abfrage für alle Geometrien in einer Geometrie, die einen Staat oder einen Landkreis darstellt).

Um die Gültigkeitsdauer zu erhalten, sollten Sie diese Abfrage zusätzliche Bedingung hinzufügen, um nur die Zeilen zu erhalten, wo (valid_from >= now() and valid_till <= now()).

Sie benötigen natürlich auch Indizes für alle drei Spalten. In der Geometriespalte sollte es einen räumlichen Index geben.

Alle Informationen zu den räumlichen Abfragen und Geometrie -Typen und Geometrie -Indizes, die Sie auf der Postgis -Site finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top