[opengeodb] OpenGeoDB unterstützen

Stephan Schuster stephan at webdesign-schuster.de
Mit Okt 25 10:26:35 CEST 2006


On Wed, 25 Oct 2006 08:49:11 +0200, Martin Brenda wrote:

>> Das Problem mit der OpenGeoDB liegt in der Komplexität der DB, die sich
>> erst auf den zweiten Blick offenbart.
>>
>> So machen die Gültigkeitsdaten die gesamte Geschichte um ca. den Faktor
>> fünf oder zehn komplizierter - leider.
>>
>> Deshalb hatte ich mal gedanklich diese Datumsangaben aus der DB gestrichen.
>> Aber gefallen tut es mir nicht wirklich.
>
>Mir ist der Zweck dieser Daten bis jetzt nicht ganz klar. Ich lasse sie immer
>auf NULL ;-) Tut keinem weh und funktioniert trotzdem. Man kann diese ruhig
>drin lassen. Ich würde sie aber nicht als Voraussetzung bei einem
>Mindesteintrag definieren.

Diese Daten dienen dazu, nachvollziehen zu können wie sich die Daten
verändert haben. Solange Du immer den bestehenden Datensatz änderst ist das
kein Problem, aber wenn Du mehrere Datensätze mit NULL hast, kannst Du
nicht mehr entscheiden welcher der aktuelle ist!

Wenn ich das DB-Schema richtig verstehe ist die "korrekte" Vorgehensweise
folgende: Bei einer Änderung wird ein neuer Wert für
valid_until gesetzt, der bestehende Datensatz kopiert, mit einem valid_from
versehen und eben entsprechend den neuen Gegebenheiten geändert. Oder
übersehe ich da etwas?

Eine Löschung dieser Daten hätte auch Vorteile:

- Die Abfragen würden einfacher (und damit wohl auch schneller) da 
  einige Bedingungen entfallen
- Änderungen würden vereinfacht

Um dennoch Änderungen am Datenbestand nachvollziehen zu können, könnten
durchgeführte Änderungen in einer separaten Tabelle festgehalten werden.
Dort würden bei der Änderung eines Datensatzes die alten Werte in einer
"flachen" Struktur zusammen mit dem Datum der Änderung und einem Kommentar
gespeichert. Anhand der loc_id wäre somit nachvollziehbar wie sich eine
Location im Lauf der Zeit verändert hat.

Allerdings ist eine Änderung der DB-Struktur immer etwas heikel, da alle
Nutzer ihre Datenbank und Ihre Applikationen umstellen müssen um die
aktuellen Daten nutzen zu können. Das könnte wiederum die Akzeptanz der
OpenGeoDB beeinträchtigen.

>>[...]
>> Erstens fehlt die Zeitinformation. Sprich: hat sich die PLZ geändert,
>> oder war sie schlicht und einfach falsch? Und wenn sie sich geändert
>> hat: WANN hat sie sich geändert? Natürlich können wir sie eintragen
>> mit Gültigkeitsdatum von unbekannt bis unbekannt. Aber sobald wir
>> mehr als einmal eine PLZ pro Ort mit "von unbekannt bis unbekannt"
>> drinhaben, können wir schon nicht mehr entscheiden, welche denn wohl
>> heute gültig wäre.
>
>Sind diese zeitlichen Informationen wirklich notwendig? Eigentlich interessiert
>uns doch nur der aktuelle Status, also die zur Zeit gültigen Werte. Oder
>übersehe ich etwas?

Ja, die Datenbank ist für weitaus mehr geeignet als nur für
PLZ-Umkreissuchen und das würde ich auch gerne so beibehalten, um den
Nutzerkreis möglichst breit zu halten

>[...]
>Diese Gültigkeitsdaten machen die Sache zwar komplizierter aber nicht unmöglich.
>Vor allem wenn man sie erstmal außen vor lässt (nicht aus der DB schmeissen,
>sondern bei dem Admin-Tool erstmal nicht berücksichtigen).

Ich denke der Aufwand die Felder entsprechend zu füllen, sollte doch zu
leisten sein, wenn ich das (so wie oben beschrieben) richtig verstanden
habe. Ein Problem sehe ich vielleicht darin, dass die Felder wohl nicht den
Zeitpunkt der Änderung in der Datenbank darstellen sollen, sondern den
Zeitpunkt der administrativen Änderung (richtig?). Und das wäre etwas was
der bearbeitende Administrator in Erfahrung bringen müsste.

Gerade kam Thomas' Antwort:

>Für mich sind Postleitzahlen weniger wichtig, dafür ist es für mich
>relevanter, wo ein Ort mal hingehörte, oder wie er früher mal hieß
>und solche Dinge.
>
>Ich habe keinen Bedarf für Umkreissuchen und solche Dinge. Wahrscheinlich
>gehen deshalb auch meine und "Eure" Interessen deutlich auseinander.
>
>[...]
>
>> Stephan und ich hätten Interesse etwas zu machen. Die DB würde ich
>> erstmal so lassen wie sie ist. Während der Entwicklung wird sich
>> zeigen, was machbar ist, was unnötig kompliziert und welche Änderungen
>> eventuell notwendig wären.
>>
>Ah, ok. Dann beschließen wir / beschließe ich jetzt, daß wir uns von den
>Gültigkeitszeiträumen trennen. Und dann wird es simpel, denke ich.

Ich würde die bestehende Struktur mit Gültigkeit aus obigen Gründen gerne
beibehalten, falls das Problem tatsächlich darin liegt, die tatsächlichen
Daten für die Gültigkeiten zu ermitteln, könnte man dort ersatzweise
zumindest das Datum der Änderung festhalten. Für Leute die lediglich Bedarf
an einer Umkreissuche haben ließe sich ja auch (ohne großen Aufwand) ein
Export der Datenbank nur mit den aktuell gültigen Einträgen erstellen.

Nebenbei: Ich fände es immer noch begrüssenswert, wenn sich noch ein oder
zwei Leute finden würden, die mitmachen würden...

stephan