Hi zusammen!
Momentan habe ich in einer MySQL-DB knapp 700 Einträge (wächst ständig).
Ich wähle einen Datensatz per Zufall aus der DB aus und zeige ihn an. Das wiederhole ich bis zu einem Abbruchkriterium oder bis alle 700 Einträge angezeigt wurden.
Jetzt mein Problem:
Innerhalb einer Session darf der Benutzer meiner Seite jeden Datensatz nur ein einziges Mal angezeigt bekommen!
Wie kann ich das mit vernünftigen Antwortzeiten realisieren?
Idee: Auslesen eines Datensatzes mit ORDER BY RAND()
1. sessionid und jeden schlüssel des Datensatzes in Tabellen ablegen; nach jedem Random-SELECT überprüfen, ob der Datensatz schon mal gelesen wurde; wenn ja neuen Select, wenn nein Schlüssel in DB eintragen, mit sessionid verknüpfen usw.
2. jeden Schlüssel eines gelesenen Datensatzes in einen Cookie schreiben. Rest entsprechend wie bei 1
Hierbei habe ich aber das Problem, dass ich oft mehrfach von DB lesen muss, bis ich wieder einen Datensatz habe, den ich noch nicht angezeigt hatte.
Zudem bin ich mir nicht sicher, ob das mit der Cookie-Methode bei 700 (und mehr) Schlüsseln vernünftig funktioniert!?!
Hat irgendjemand eine bessere Idee?
basser
Momentan habe ich in einer MySQL-DB knapp 700 Einträge (wächst ständig).
Ich wähle einen Datensatz per Zufall aus der DB aus und zeige ihn an. Das wiederhole ich bis zu einem Abbruchkriterium oder bis alle 700 Einträge angezeigt wurden.
Jetzt mein Problem:
Innerhalb einer Session darf der Benutzer meiner Seite jeden Datensatz nur ein einziges Mal angezeigt bekommen!
Wie kann ich das mit vernünftigen Antwortzeiten realisieren?
Idee: Auslesen eines Datensatzes mit ORDER BY RAND()
1. sessionid und jeden schlüssel des Datensatzes in Tabellen ablegen; nach jedem Random-SELECT überprüfen, ob der Datensatz schon mal gelesen wurde; wenn ja neuen Select, wenn nein Schlüssel in DB eintragen, mit sessionid verknüpfen usw.
2. jeden Schlüssel eines gelesenen Datensatzes in einen Cookie schreiben. Rest entsprechend wie bei 1
Hierbei habe ich aber das Problem, dass ich oft mehrfach von DB lesen muss, bis ich wieder einen Datensatz habe, den ich noch nicht angezeigt hatte.
Zudem bin ich mir nicht sicher, ob das mit der Cookie-Methode bei 700 (und mehr) Schlüsseln vernünftig funktioniert!?!
Hat irgendjemand eine bessere Idee?
basser
Kommentar