Hallo Ihr,
ich möchte eine Datenbank aufbauen, in der Zuzugs-und Fortzugsbewegungen zwischen Gemeinden (mit Gemeindeschlüssel definiert) anhand von jährlichen Daten verwaltet werden sollen. Das Problem, was ich dabei habe, ist, dass sich die Gemeindestruktur jährlich ändert. Es werden beispielsweise Gemeinden zusammengefasst oder eingemeindet. Dafür habe ich eine jährliche Tabelle, in der die Änderung vom alten zum neuen Gemeindeschlüssel definiert ist. Dadurch müssen Zeilen automatisch zusammengefasst werden (auch ihre Werte). Für die Abfragen von Jahr A bis B (die z.B. dann in QGIS visualisiert werden könnten) benötigt der Nutzer zum einen eine vergleichbare Datenstruktur mit aktuellem Gebietsstand und zum anderen den Gebietsstand des jeweiligen Jahres für Abfragen innerhalb dieses Jahres.
Ich hoffe, das war irgendwie verständlich!
Wie kann ich einen solchen Sachverhalt in der Datenbank integrieren?
Wie können Zeilen zu einer Zeile zusammengefasst werden?
Ich bin für jeden Tip dankbar!!
Zusammenfassen von Zeilen ist eine Aggregation, dazu gibt es genug Doku. Um die Änderungen zu dokumentieren mußt halt speichern, von wann bis wann das jeweils gültig ist. Wenn Du eh erst entwickelst und das noch nicht gleich produktiv gehen soll, böte sich an, auf 9.2 zu warten (und bis dahin mit 9.2 RC1 zu arbeiten), denn das kennt RANGE DATA - Typen, die genau für sowas ideal sind.
Aber insgesamt ist das alle viel zu vage und offenbar doch auch recht komplex, um Dir hier ein abgeschmecktes Rezept vorzulegen.
Ich hatte mal was ähnliches mit einem Trigger gelöst. Wenn sich ein Eintrag/Geometrie geändert hat, wurde kein Update durchgeführt sondern immer ein neuer Eintrag mit der gleichen Kennzahl (!=DatenbankID!) angelegt. Gültig war jeweils der letzte Zeitstempel. Wenn ein noch nicht vorhandener Einrag erstellt wird gibt es eine neue Kennzahl. Da bei dir Einträge auch ungültig werden, müsstest du noch ein Flag mitführen ob der Eintrag noch gültig ist. Ggf auch eine Kennzahl des ‘nachfolgenden’ Eintrags. So konnte man recht gut eine Versionierung abbilden, die den Zustand der Bearbeitung zu jedem Zeitpunkt abbildet.