Mahlzeit,
Nein, ich bemühe mich schon, zwischen den Zeilen zu lesen - und bestehe nicht auf der Auslegung exakt nach dem Wort.
Anforderungen aufnehmen kann auf ein Lesen in Teerückständen hinauslaufen. Ich habe die Sache nur thematisiert, weil es mir 1.) hinreichend wahrscheinlich schien, dass der Anfordernde ein permanentes benutzerfreundliches Identifikationssystem wünscht und 2.) weil dieses ein kontroverses Thema ist. Viele ITler mögen solche benutzerfreundliche Identifikationssysteme nicht und dann wird in der Diskussion "geholzt". Dass ich benutzerfreundliche Identifikationssysteme für selbstverständlich halte, dürfte klar geworden sein. :)
Wenn es darum gehen sollte, den neuen Namen für das neue Bild zu finden, dann muss die Anwendungslogik verschiedene Fälle betrachten, die im Ausgangsposting nicht erwähnt sind:
Einfügen, die leichte Operation:
Einfügen ist selbstverständlich nur am "Ende" möglich. Soll nur ein neues Bild in die Galerie eingefügt werden, so ist es natürlich Unsinn, Daten aller relevanten Datensätze abzufragen, eventuell sogar bequem mit SELECT * FROM ..., die Daten anzufordern - und wegzuwerfen. Für soetwas gibt es COUNT().Löschen, die schwierige Operation:
Ist es möglich, ein Bild zu löschen. Wenn ja, müssen innerhalb einer Galerie die Bilder umbenannt werden. Dazu wäre mein Statement als Ansatz brauchbar. Wie Rouven bereits schrieb, wären in einem solchen Fall Trigger durchaus nett. Ich weiß allerdings nicht, wie man die Race Condition zwischen Umbenennen der Dateien, Ändern der Links und Ändern in der Datenbank vermeiden kann. Man könnte sie als unvermeidbar für einen sehr kurzen Zeitraum hinnehmen. Mein Schluss lautete im Anwendungsfall jedoch: verzichte auf das Umbenennen, akzeptiere dass generierte Namen "Lücken" aufweisen.
Die Alternative: Bilder werden nicht gelöscht.Ich persönlich finde nicht, dass durchnumerierte Bilder wirklich benutzerfreundliche Namen tragen. Meine persönliche Ansicht von Benutzerfreundlichkeit sieht anders aus; ich fürchte, dass meine Vorstellung von benutzerfreundlichen Namen mit Handarbeit verbunden ist; diese darf man bei Galerieskripten dem Anwender weder zumuten noch überhaupt erlauben. So landet man aus praktischen Erwägungen doch bei generierten Namen :-(
Jetzt verstehe zur Abwechslung mal ich "Bahnhof". - Was spricht gegen ein neues Datenfeld mit auto increment, darauf sitzenden Index (für die Eindeutigkeit) und einer am RDBMS angesiedelten Logik, die transaktional für das Fortlaufen des auto increment-Wertes sorgt?
(Wenn sich jetzt herausstellen sollte, dass es kein Datenbank-Problem ist, dann werde ich aber grün im Gesicht. ;)
Viele Grüße!
Mahmoud D'Rselbst