Ein gut gemeinter Design-Tipp.
Auf der Suche nach einem Fehler ist mir etwas anderes aufgefallen, was man geschickter umsetzten kann. Als Beispiel nehme ich mal die Bonus-Tipps:
Im Prinzip wird der folgende SQL-Code zum Speichern eines Bonus-Tipps verwendet, wobei beide Anweisungen durch weiteren php-Code getrennt sind. Ähnliches findet man auch an anderen Stellen:
Wenn man aber einen eindeutigen Schlüssel der Art
... hätte, dann könnte man folgendes verwenden:
Dieses ist nicht nur eine Schönheits-Operation, sondern eine übliche Vorgehensweise mit dem entscheidenden Vorteil, dass es eine atomare Aktion ist. Außerdem würden auf DB-Seite doppelte Einträge verhindert.
Im ersten Fall ist theoretisch eine Laufzeit-Problem vorhanden, wenn z.B. der Benutzer ein Formular absendet, dieses stockt und er es nochmals absendet. Sollten dann beide gleichzeitig zur Ausführung kommen, dann kann es 2 Einträge für den Bonus-Tipp des Spielergeben.