Unique Random Abfrage einer Datenbank

deintag85

Erfahrenes Mitglied
Hallo,
ich habe in einer SQL Datenbank ganz viele Sprüche/Zitate gespeichert. Nun möchte ich wenn ein Besucher auf die Seite kommt, dass kann z.B. ein registrierter Nutzer sein, einen Spruch angezeigt bekommt. Klar wie das funktioniert. Nun möchte ich das alles per Zufall generieren, aber dennoch so, dass auf keinen Fall 2x der gleiche Spruch angezeigt wird.

Ich hatte mir überlegt ob ich in einer 2ten Tabelle den Benutzer speichere und zusätzlich welche Zitate er bereits gelesen hat. Wenn ich aber 1.000.000 Benutzer habe und 300 Sprüche dann platzt das ganze aus allen Nähten.

Ein Freund meinte was von einem Pseudogenerator, den man so programmieren könnte, dass man den benutzer abfragt und wie oft er bereits ein zitat gelesen hat. Den Wert nimmt man um den generator zu füllen und er zeigt dann einen neuen spruch an und keinen alten mehr.

Bloss hab ich keine Ahnung wie das funktionieren soll. Gibt es vllt eine noch simplere Lösung an die ich nicht gedacht habe? Oder welche Möglichkeit gibt es?

LG
 
Dein Pseudo-Geenrator bracuht aber genau die Informationen die du nicht speichern willst - sogar noch mehr. Nebst [ User]-[ Zitat] kommt noch [Anzahl Zugriffe] dazu.

Du kommst nicht umhin diese Informationen in eine DB zu speichern. Und nein, sie platzt dadurch nicht so schnell aus den Nähten. 300Mio Einträge mit je 2 Zahlen (die id des Users und die des Zitates) sind nicht viel im Vergleich dazu, dass du 1Mio User mit allen dazugehörigen Informationen speichern willst.
 
Muss es wirklich komplett zufällig sein? Sonst könntest du es so machen dass du in der Zitat Tabelle noch eine Zusätzliche Spalte einfügst mit der du deine Zitate zufällig durchnummerierst.

Dann kannst du Pro User Speichern welchen er zuletzt gelesen hat und dann den nächsten nehmen.

Für den User ist es dann Zufällig wobei es halt bei allen gleich "Zufällig" ist.
 
Zurück