Hallo,
für mein Projekt benötige ich eine Abfrage, die zufällige Zeilen liefert unter Angabe bestimmter Parameter.
Ich gehe für dieses Posting von einer Beispiel-Tabelle mit folgenden Attributen aus:
int: id
int: typ (kann drei verschiedene Werte annehmen)
int: status (kann drei verschiedene Werte annehmen)
int: punkte
Die Abfrage zufälliger Zeilen aus dieser Tabelle stellt allein kein Problem dar.
Allerdings sollen dabei noch folgende Kriterien berücksichtigt werden:
Mit Hilfe von Slidern soll der Benutzer eine Gewichtung für die Attribute "typ" und "status" festlegen können.
Er soll zum Beispiel festlegen können:
- Das zufällige Ergebnis soll 50% Datensätze mit typ=1 enthalten, 25% mit typ=2 und die restlichen 25% mit typ=3.
Selbiges soll gleichzeitig auch für "status" festlegbar sein.
Dabei ist gleichzeitig entweder die Anzahl zufällig zu generierender Zeilen wählbar oder eine Gesamtpunktzahl. In letzterem Fall sollen so viele Datensätze zufällig ausgelesen werden, dass die Spalte "punkte" in der Summe die angegebene Punktzahl erreicht.
Ich überlege nun, wie ich diese Anforderung am Besten und auch einigermaßen performant umsetzen kann.
MySQL-spezifische Funktionen fallen heraus, da das Projekt PEAR:B nutzt, und eine Datenbankumstellung zu einem späteren Zeitpunkt nicht ausgeschlossen ist.
Gibt es hier überhaupt Möglichkeiten, bei der eigentlichen Datenbankabfrage bereits mehr als das reine zufällige Auslesen von Zeilen zu erreichen? In diesem Fall müsste ich den Algorithmus komplett in PHP realisieren, was mir auch noch etwas Kopfschmerzen bereitet. Hat jemand eine ähnliche Anforderung vielleicht schon einmal umgesetzt? Oder gibt es vielleicht eine fertige Lösung für ein Problem dieser Art?
Vielen Dank für die Hilfe und viele Grüße
Mahavishnu
für mein Projekt benötige ich eine Abfrage, die zufällige Zeilen liefert unter Angabe bestimmter Parameter.
Ich gehe für dieses Posting von einer Beispiel-Tabelle mit folgenden Attributen aus:
int: id
int: typ (kann drei verschiedene Werte annehmen)
int: status (kann drei verschiedene Werte annehmen)
int: punkte
Die Abfrage zufälliger Zeilen aus dieser Tabelle stellt allein kein Problem dar.
Allerdings sollen dabei noch folgende Kriterien berücksichtigt werden:
Mit Hilfe von Slidern soll der Benutzer eine Gewichtung für die Attribute "typ" und "status" festlegen können.
Er soll zum Beispiel festlegen können:
- Das zufällige Ergebnis soll 50% Datensätze mit typ=1 enthalten, 25% mit typ=2 und die restlichen 25% mit typ=3.
Selbiges soll gleichzeitig auch für "status" festlegbar sein.
Dabei ist gleichzeitig entweder die Anzahl zufällig zu generierender Zeilen wählbar oder eine Gesamtpunktzahl. In letzterem Fall sollen so viele Datensätze zufällig ausgelesen werden, dass die Spalte "punkte" in der Summe die angegebene Punktzahl erreicht.
Ich überlege nun, wie ich diese Anforderung am Besten und auch einigermaßen performant umsetzen kann.
MySQL-spezifische Funktionen fallen heraus, da das Projekt PEAR:B nutzt, und eine Datenbankumstellung zu einem späteren Zeitpunkt nicht ausgeschlossen ist.
Gibt es hier überhaupt Möglichkeiten, bei der eigentlichen Datenbankabfrage bereits mehr als das reine zufällige Auslesen von Zeilen zu erreichen? In diesem Fall müsste ich den Algorithmus komplett in PHP realisieren, was mir auch noch etwas Kopfschmerzen bereitet. Hat jemand eine ähnliche Anforderung vielleicht schon einmal umgesetzt? Oder gibt es vielleicht eine fertige Lösung für ein Problem dieser Art?
Vielen Dank für die Hilfe und viele Grüße
Mahavishnu
Kommentar