[opengeodb] Liste der Länder
Robert Böck
robert.boeck at googlemail.com
Sam Dez 8 00:50:09 CET 2007
Hallo Matthias,
Matthias Dietrich wrote:
> ich misch mich mal ganz kurz ein...
Gerne doch!
>> Ehrlich gesagt - die SQL-Datenstruktur ist eine einzige Katastrophe. Von
>> Normalisierung keine Spur. Da blickt doch kaum jemand durch.
>
> Da muss ich dir absolut Recht geben, Robert!
Mal ein kleines Beispiel. Ich habe mir vor längerer Zeit mal eine
Abfrage gestrickt, die alle Orte in Bayern ausspuckt, inklusive
Geokoordinaten, KFZ-Kennzeichen und Landkreis-Zugehörigkeit:
SELECT ort.loc_id as l_ort,
ort.text_val as t_ort,
coord.lon as lon,
coord.lat as lat,
kfz.text_val as t_kfz,
hi.id_lvl5 as lkr_id
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata ort,
geodb_textdata bundesland,
geodb_textdata kfz,
geodb_coordinates coord,
geodb_locations loc
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
ort.loc_id=hi.loc_id AND
ort.text_type=500100000 AND
hi.loc_id=hi.id_lvl6 AND
loc.loc_id=hi.loc_id AND
loc.loc_type=100700000 AND
coord.loc_id=hi.loc_id AND
kfz.loc_id=hi.loc_id AND
kfz.text_type=500500000
ORDER BY l_ort
Um jetzt eine Liste der Landkreise in Bayern rauszubekommen, um die Orte
selbigen zuordnen zu können, braucht es immerhin noch diese Abfrage:
SELECT ort.loc_id as l_ort,
ort.text_val as t_ort,
hi.id_lvl4 as rbez_id
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata ort,
geodb_textdata bundesland
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
ort.loc_id = hi.loc_id AND
ort.text_type = 500100000 AND
hi.loc_id=hi.id_lvl5
ORDER BY l_ort
Die Abfrage, um eine Liste der Regierungsbezirke in Bayern
rauszubekommen, um die Landkreise selbigen zuordnen zu können, ist nicht
minder kompliziert:
SELECT ort.loc_id as l_ort,
ort.text_val as t_ort
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata ort,
geodb_textdata bundesland
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
ort.loc_id = hi.loc_id AND
ort.text_type = 500100000 AND
hi.loc_id=hi.id_lvl4
ORDER BY l_ort
Und da frage ich mich: Wer bitteschön soll da durchblicken? Ich habe mir
das mal vor einem guten Jahr zusammengepfriemelt, und heute blicke ich
da selbst auch nicht mehr durch ...
>> Und du wunderst dich, dass dann unpräzise Fragen kommen. Mich wundert das
>> überhaupt nicht.
>
> So wie ich das sehe, kann Martin allerdings gar nichts für diese
> Struktur. Die hatte er ja einfach nur übernommen.
Und da hast _du_ vollkommen recht. Das ist auch keine Kritik gegenüber
Martin, sondern eine Feststellung.
Was ich allerdings an Martin kritisiere, ist, dass er Leute schwach
anmacht, die aufgrund der Tatsache, dass die Datenstruktur
unübersichtlich ist, ganz offensichtlich einfach nicht richtig durchblicken.
> Ich hatte damit auch
> schon meine Schwierigkeiten, und habe es soweit durch dringen können,
> wie ich es bisher gebraucht habe. Dennoch möchte ich irgendwann die
> Daten für meine Zwecke neu ordnen, damit die Suche nicht so ewig dauert.
>
> Dabei habe ich mir auch schon überlegt, dass man gemeinsam eine
> komplette und sinnvolle Architektur für das ganze finden. Allerdings
> hatte ich dazu noch keine Zeit. Aber wenn sich ein paar finden, die da
> mitmachen würden, könnte man sich schonmal vorab per Liste unterhalten
> und mit dem Definieren beginnen.
Dein Wort in Gottes Gehörgang. Allerdings mangelt es mir auch an Zeit ...
cu, Robo :)