isyyy
Lieutenant
- Dabei seit
- Aug. 2010
- Beiträge
- 666
Hallo zusammen,
ich hab da mal eine Grundlegende frage über PHP und MYSQL.
Ich bin ein C++/Java Entwickler und Programmiere derzeit ein Spiel für
Android und iOS.
In dem Spiel können sich Spieler gegeneinander Duellieren.
Startet ein Spieler ein neues Spiel wird zuerst in der Datenbank auf einer Tabelle geschaut ob offene Spiele,
also noch nicht zugewiesene Spiele vorhanden sind.
Sind alle Spiele schon anderen Spielern zugewiesen wird ein neues Spiel angelegt und der Status wird in der Tabelle auf 0 gesetzt. Der Status 1 würde bedeuten das dieses Spiel schon einem anderem Spieler zugewiesen wurde.
Nun ist meine Frage folgende:
Kann es vorkommen das in einer Tabelle mehrere nicht zugewiesene Spiele vorhanden sein können?
Situation1:
Es sind derzeit 2 Spieler online.
Spieler 1. sucht ein Spiel. Es ist aber keins vorhanden. In die Tabelle "offeneSpiele" wird jetzt ein Eintrag erstellt welches den Status 0 hat. Kurz nachdem Dieses Spiel in die Tabelle eingetragen wurde sucht Spieler 2. ein Spiel.
Nun wird ein SELECT ausgeführt mit dem LIMIT 1 wo Status = 0 ist. Demzufolge wird das Spiel vom Spieler 1. ausgewählt und der Status auf 1 gesetzt. Dadurch ist das Spiel jetzt vergeben.
Situation 2:
Mehrere Spieler > 500 suchen zum gleichen Zeitpunkt ein Spiel. Wie werden diese SELECT Querys auf MYSQL jetzt ausgeführt?
Hintereinander? Parallel? Kann es vorkommen das mehrere Spieler von diesen 500 Spielern zufälligerweise ein gleichen Spiel SELECTED bekommen wo der Status auf 0 st? Weil ein Spiel darf nur 2 Spieler beinhalten.
Oder wird die Tabelle bei einem SELECT gelocked?
Oder passiert das so schnell das nie ein Spiel mit Status 0 von mehreren Spielern SELECTIERT werden kann weil der Status zu schnell auf 1 gesetzt wird?
Oder muss ich per Code die Tabelle sperren?
Würde mich freuen falls mir jemand eine Hilfreiche Antwort schreiben könnte.
Viele Liebe Grüße
ich hab da mal eine Grundlegende frage über PHP und MYSQL.
Ich bin ein C++/Java Entwickler und Programmiere derzeit ein Spiel für
Android und iOS.
In dem Spiel können sich Spieler gegeneinander Duellieren.
Startet ein Spieler ein neues Spiel wird zuerst in der Datenbank auf einer Tabelle geschaut ob offene Spiele,
also noch nicht zugewiesene Spiele vorhanden sind.
Sind alle Spiele schon anderen Spielern zugewiesen wird ein neues Spiel angelegt und der Status wird in der Tabelle auf 0 gesetzt. Der Status 1 würde bedeuten das dieses Spiel schon einem anderem Spieler zugewiesen wurde.
Nun ist meine Frage folgende:
Kann es vorkommen das in einer Tabelle mehrere nicht zugewiesene Spiele vorhanden sein können?
Situation1:
Es sind derzeit 2 Spieler online.
Spieler 1. sucht ein Spiel. Es ist aber keins vorhanden. In die Tabelle "offeneSpiele" wird jetzt ein Eintrag erstellt welches den Status 0 hat. Kurz nachdem Dieses Spiel in die Tabelle eingetragen wurde sucht Spieler 2. ein Spiel.
Nun wird ein SELECT ausgeführt mit dem LIMIT 1 wo Status = 0 ist. Demzufolge wird das Spiel vom Spieler 1. ausgewählt und der Status auf 1 gesetzt. Dadurch ist das Spiel jetzt vergeben.
Situation 2:
Mehrere Spieler > 500 suchen zum gleichen Zeitpunkt ein Spiel. Wie werden diese SELECT Querys auf MYSQL jetzt ausgeführt?
Hintereinander? Parallel? Kann es vorkommen das mehrere Spieler von diesen 500 Spielern zufälligerweise ein gleichen Spiel SELECTED bekommen wo der Status auf 0 st? Weil ein Spiel darf nur 2 Spieler beinhalten.
Oder wird die Tabelle bei einem SELECT gelocked?
Oder passiert das so schnell das nie ein Spiel mit Status 0 von mehreren Spielern SELECTIERT werden kann weil der Status zu schnell auf 1 gesetzt wird?
Oder muss ich per Code die Tabelle sperren?
Würde mich freuen falls mir jemand eine Hilfreiche Antwort schreiben könnte.
Viele Liebe Grüße
Zuletzt bearbeitet: