Benutzer:Dapete/Ideen

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Verbesserung der Funktion "Zufälliger Artikel"

[Bearbeiten | Quelltext bearbeiten]

Das Problem: Die aktuelle Zufallsfunktion ist nicht gleichmäßig - einzelne Artikel werden häufiger erreicht als andere.

Die Lösung: jeder Artikel erhält eine eindeutige, durchgehende Nummerierung.

Dafür wird eine neue Tabelle in der Datenbank benötigt, die jeder page diese Nummerierung zuordnet.

Grundlegend wird die Tabelle folgendermaßen gefüllt:

  • Zur Initialisierung wird für jede page ein Eintrag geschrieben.
  • Beim Neuanlegen eines Artikels wird ein neuer Eintrag angelegt (mit dem bisherigen Maximum + 1)
  • Beim Löschen eines Artikels wird der entsprechende Eintrag gelöscht. Der Eintrag, der bisher die höchste Nummer hatte, erhält die Nummer des gelöschten Artikels (um keine Lücke zu erzeugen).
  • (Evtl. muss dabei auch beachtet werden, ob es sich um einen Redirect handelt. Also müsste auch die Umwandlung von/in Redirects berücksichtigt werden.)

Um einen zufälligen Artikel zu bekommen, wählt mai eine Zufallszahl zwischen 0 und der maximalen Nummer und ruft den passenden Artikel ab. Dabei kann es evtl. zu Fehlern kommen:

  • Existiert aus irgendeinem Grund der Eintrag zur gewählte Zufallszahl nicht, wird diese Nummer dem Artikel zugeteilt, der bisher die maximale Nummer hatte (um evtl. Lücken zu schließen).
  • (Evtl. wird, falls ein Redirect ermittelt wird, dessen Eintrag entfernt [Vorgehen wie bei Löschung].)

Bis auf die Initialisierung ist diese Lösung sparsam mit Änderungen – es geht immer nur um 1–2 Einträge, die geschrieben werden müssen. Sinnvoll wäre die Möglichkeit, die Korrektheit nachräglich zu prüfen - wobei überschüssige Einträge entfernt und fehlende ergänzt werden.