[Talk-de] Datenbankbereinigung
Stefan Neufeind
openstreetmap at stefan-neufeind.de
Fr Aug 8 11:11:09 UTC 2008
Christian Malolepszy wrote:
> Hallo,
>
> On Thu, Aug 07, 2008 at 07:25:28PM +0200, Frederik Ramm wrote:
>> Niemand hatte je den Anspruch, ein Format zu schaffen. Die
>> Herausforderung bei OSM ist, aus den Daten was gutes zu machen, ohne
>> dass es feste Regeln gibt, weil feste Regeln den Evolutionsprozess
>> zerstoeren, den Mapper zum tumben Datentypisten machen und dem Projekt
>> die Dynamik nehmen, die es zum Leben braucht.
>>
>> Mir ist schon klar, dass es fuer die Nutzer der Daten etwas
>> komplizierter ist, aber die vernuenftige Loesung waere, sich einen
>> normierenden Zwischenlayer auszudenken, der die Daten in das wandelt,
>> was man gerne haette, und NICHT, die Mapper normieren zu wollen.
>
> zwingen etwas "normiert" zu machen wäre ein falscher ansatz.
>
> zwischenschicht ist der richtige ansatz, nur sollte man meiner
> meinung nach die zwischenschicht, nicht beim herauslesen der
> daten ansetzen, sondern für bekannte sachen beim hineinscheiben
> in die datenbank oder in periodischen jobs, denn:
> - beim lesen der daten (zum beispiel: das api ersetzt die werte)
> würde es bedeuten, daß es immer wieder gemacht werden muß
> was performance kostet.
> - wenn jede anwendung eine zwischenschicht implementiert und
> für die interpretation der werte zuständig ist, bedeutet das
> eine fehleranfälligkeit und pflegeaufwand.
>
> beispiel:
> für boolean werte (z.B. oneway) kann folgendes in der db stehen:
> oneway=true
> oneway=TRUE
> oneway=trUE
> oneway=yes
> oneway=YES
> oneway=1
> usw.
>
> jede anwendung muss nun um dieses eine feld zu unterstützen ein
> regelwerk und normierung der werte durchführen.
> dies bedeutet aufwand und fehleranfälligkeit für jede anwendung.
> und wenn dann einer hinkommt und
> oneway=ja
> oder
> oneway=si
> hinschreibt muß jede anwendung angepasst werden.
>
>
> beim hineinschreiben passiert es nur ein
> einziges mal und alle die da drauf zugreifen können sich da
> drauf verlassen, daß die daten "sauber" sind
> und eben bei boolen werten wie oneway da z.B. immer true
> zurückkommt.
Mir sind übrigens auch ein paar Tags aufgefallen, die vorne/hinten ein
Leerzeichen hatten o.ä. Das wirkt sich in der Praxis dahingehend aus,
daß ein "name " (vielleicht copy-n-paste-error?) nicht gerendert wird
und "name" tadellos funktioniert. Auch hier könnte vielleicht ein
"trimmen" (Leerzeichen, Zeilenumbrüche - unter PHP quasi die Funktion
trim()) für keys und ggf. auch values durchaus gute Dienste leisten ohne
Daten zu "verfälschen". Das macht im übrigen auch der JOSM-Validator,
wenn man ihm für jene Fehler nach dem validieren sagt "fix".
Stefan
Mehr Informationen über die Mailingliste Talk-de