Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[intern] Wettbewerbsauswertung - Ideen - IRC Log
#3
Warum willst du das denn mit so vielen Tabellen machen?
Ich hätte jetzt einfach für jede Disziplin eine Tabelle angelegt, die in etwa so aussieht:
Name, Single Best, Average, KW

Der Name wird dann durch das Formular überprüft. (Indem man auf die Userdatenbank vom Forum zurückgreift, und das Passwort überprüft)
Single Best und Average werden auch vom Formular berechnet (es ist ja unnötig, jede einzelne Zeit zu speichern, wenn nur average und single best von Belang sind).
Um doppelte Einträge zu vermeiden, muss das Formular überprüfen, ob sich der User in der aktuellen Kalenderwoche schon in der Disziplin eingetragen hat. (Vielleicht wäre es auch einfacher, anstatt die Wettbewerbe anhand der KW zu identifizieren, jedem Wettbewerb eine Nummer zuzuordnen. Also Wettbewerb 1, Wettbewerb 2 etc..)

Die Rekordliste sollte sich recht simpel mit einer einzigen Datenbank realisieren lassen. Die DB sieht dann genau so aus, wie die für die einzelnen Disziplinen. Immer wenn jemand seine Zeiten übermittelt, wird geprüft, ob der User schon in der Rekordliste steht. Ist das nicht der Fall, wird er mit diesen Zeiten in die DB eingetragen. Wenn er schon in der DB steht, werden die gespeicherten Zeiten mit den Übermittelten verglichen, und aktualisiert (sofern die Zeiten besser waren).

____________________________________________________________


Weitere Überlegungen + Beispiel

Wie oben schon gesagt, würde ich für jede Disziplin eine Tabelle anlegen, die Name, single best, average, und die wettberbsnummer enthält.
Ausserdem würde ich noch eine Tabelle anlegen, in der Einstellungen gespeichert werden. Hier kann man dann festlegen, welche Nummer der aktuelle Wettbewerb hat, welche user evtl. gesperrt sind etc.

Dann brauchen wir 3 Formulare: Eins für die Administration (Wettbewerb starten/beenden, user sperren, korrekturen vornehmen...)
Das zweite dient dazu die Daten zu erfassen, und kann in etwa so gestaltet werden, wie Ben es beschrieben hatte. Die aktuelle Wettbewerbsnummer wird dann aus der Einstellungstabelle ausgelesen. (man könnte, aus welchen Gründen auch immer, den wettbewerb sperren, indem man die nummer auf 0 setzt).
Das dritte Formular dient dazu, die Ergebnisse anzuzeigen. Man kann die Kalenderwoche ud die Disziplin auswählen, und die Daten nach Zeiten oder Usernamen sortieren.

Beispiel:

Wir habe bereits einen abgeschlossenen Wettbewerb (nr. 1). Der aktuell laufende ist nr. 2. Dementsprechend steht die Wettbewerbsnummer in der einstellungstabelle auf 2.
Für jede Disziplin haben wir dann eine Tabelle die so aussieht:
Name;single;average;Wettbewerbsnummer
Ben;12.34;23.45;1
loose;34.12;45.67;1
sol1x;23.45;56;78;1
Ben;34.12;45.67;2
loose;12.34;56.78;2

Im aktuellen Wettbewerb haben sich Ben und ich bereits eingetragen. Jetzt will sich sol1x über das Formular eintragen. Dabei gibt er seine zeiten, die disziplin, seinen Namen, und sein Passwort ein. Über die userdatenbank vom Forum werden Name und PW überprüft. Dann werden single und average berechnet, und in die Tabelle der Disziplin eingetragen. (Man muss nicht unbedingt für jede disziplin eine Tabelle machen, sondern könnte auch noch ein Feld "Disziplin" einfügen.) Jetzt wird überprüft, ob sol1x sich in dem aktuellen Wettbewerb (nr. 2) schon in der Disziplin eingetragen hat. Wenn nicht (und wenn er für den wettbewerb nicht gesperrt ist), werden seine Daten gespeichert, ansonsten gibts ne Fehlermeldung.

Sobald der Wettbewerb zuende ist, wird die wettbewerbsnummer auf 0 (gesperrt) oder direkt auf 3 (für den nächsten wettbewerb gesetzt).

Ich hoffe das war halbwegs verständlich. Ich bitte um Fragen und weitere Ideen Wink


Nachrichten in diesem Thema

Gehe zu: