Mailinglisten-Archive |
Hallo, für ein Lernprogramm will ich Tests auf einem Server ablegen. Es gibt ca. 120 Tests. Jeder Test besteht aus einer Frage und drei möglichen Antworten A1, A2, A3. Zu jeder Antwort gibt es genau eine Erläuterung E1, E2, E3. Schließlich gibt es zur Frage noch eine Vertiefung V, in der der Gesamtzusammenhang erklärt wird. Alle Komponenten können längere Texte sein. Der Ablauf soll so sein: User ruft Test auf. Es erscheinen Frage und die möglichen Antworten. Sie klickt eine Antwort und sieht die zugehörige Erläuterung. Dabei erscheint ein Button, der zur Vertiefung weiterleitet, wenn User das wünscht. Alles klar? Jetzt die Frage: Ich habe das komplett so realisiert, dass alle Einzelteile in MySQL- Tabellen drin stecken. Man muss sich nur irgendwo den Zusammenhang der Schlüssel merken, dann kann man das oben beschriebene Verhalten leicht implementieren. Das Problem ist die Verteilung der Infos in die Datenbank. Der Autor schreibt nämlich alle hintereinander auf - in XML. Daraus die Datenbankeinträge so zu produzieren, dass alles noch schön zusammenhängt, funktioniert zwar, ist aber sehr aufwändig. Und bei Überarbeitungen wird es wirklich kompliziert. Kann man das nicht besser mit XML zur Laufzeit machen? Dann würde ich einen Test als eine einzelne XML-Datei ablegen und zur Laufzeit aus dieser die Infos holen. Wie oft muss ich den Test parsen? Entweder dreimal (wenn User Test anklickt, wenn er eine Antwort anklickt, wenn er die Vertiefung sehen will). Oder nur einmal (wenn User Test anklickt) und dann _alle_ Komponenten in der Session speichern (kann viel Text sein - insgesamt 2-3 Tausend Zeichen). Dh wenn die Antwort bzw die Vertiefung gebraucht wird, kommen die dann aus der Session. Ich benutze für die Sessions die PHPLib, dh die Session wird in MySQL abgelegt. Hat jemand eine Vorstellung davon, was effizienter ist? Es wird nämlich die Zeit kommen, wo die Tests von hunderten von Usern gleichzeitig absolviert werden: Ist dann die reine MySQL-Lösung besser? Oder die Drei-Mal-Parsen-Lösung? Oder die Einmal- Parsen-Session-Lösung? Danke für Eure Geduld und für alle Hinweise ;-) Peter Kursawe.
php::bar PHP Wiki - Listenarchive