wie kann ich mit der Nr. einer gelöschten Relation eine neue Relation bilden? Ich habe gelesen, dass dadurch die osm-Datenbank entlastet wird, indem sie von leere Relationen befreit wird.
Soweit ich mit dem Konzept von MySQL vertraut bin, ist das was du ansprichst nichts was man als normaler Nutzer beachten muss. Wenn eine Relation (allgemein: ein Datensatz, also eine Zeile in einer Tabelle) gelöscht wird, wird sie in Wirklichkeit nicht gelöscht, sondern nur intern als gelöscht markiert. Sie verbraucht also weiterhin Speicherplatz und bremst (vor allem wenn sich in einer Tabelle über die Zeit viele gelöschte Datensätze gesammelt haben) die Performance. In SQL-Dumps ist sie aber beispielsweiseo schon nichtmehr enthalten. Ähnliche Effekte können unter Umständen auch bei umfangreichen Änderungen der Daten in der Tabelle auftreten. Es liegt nun am Admin, von Zeit zu Zeit einen OPTIMIZE TABLES Befehl auszuführen, der dann alle als gelöscht markierten Datensätze auch tatsächlich aus der Tabelle entfernt.
Hat das keinen Einfluss auf die Historie, wenn IDs wiederverwendet werden? Zumal es dadurch unnütz schwieriger wird gelöschte Objekte wieder her zu stellen, wenn jetzt großflächig IDs recycled werden. Für mich hört sich das eher nach einen bösen Hack, als nach etwas sinnvollen an.
Relations wiederverwenden ist ziemlicher Unsinn, dadurch wird nur unnötig erschwert, Objekthistorien sinnvoll nachvollziehen zu können. Wenn die Entwickler wollten, dass Objekt-IDs recycelt werden, könnten sie das problemlos ohne unsere Hilfe veranlassen. Tun sie aber aus guten Gründen nicht.
Die Historien kann man doch trotzdem nachvollziehen. Mal ganz abgesehen davon, dass solche leeren Relation häufig beim zusammenlegen zweier Relationen entstehen. Wenn dann die Tags nicht entfernt werden. Sondern die Relation nur geleert wird, dann existieren nachwievor zwei Relationen mit den gleichen Tags. Findet dann jemand die leere Relation und ein Abschnitt der der anderen Relation noch nicht hinzugefügt ist, dann geht das Spiel von vorne los…
Wenn zum Beispiel vom Wiki auf eine leere Relation verlinkt wird. Und jemand denkt sich dann: “Oh da fehlt ja noch alles”, und legt los… Da fänd ichs besser, wenn er eine wiederverwendete Relation sehen würde. Dann würde er direkt sehen, dass der Link falsch ist. Was er ja auch ist, denn für die gewünschte Relation gibt es mit Sicherheit eine neue ID.
Ja, seit heute morgen. Ist die Aussage einer Einzelperson (ohne besondere Argumente) jetzt gewichtiger, weil sie im Wiki statt im Forum steht?
Deshalb lässt man die Relation ja auch nicht leer, sondern löscht sie. Dann kann man solche Links sogar potentiell automatisch finden – eine gelöschte Relation ist eindeutig erkennbar, eine umgewidmete nicht.
Wenn ein Editor das nicht kann, muss man halt einen anderen nehmen, wenn man Relationen beseitigen will. Oder den Entwickler dazu bringen, Features (wie Relation-Support) erst zu veröffentlichen, wenn sie fertig sind.