Hi all.
Ich wollte mal fragen ob jemand eine Idee hat, wie ich die Armeen meines Browsergames abspeichern soll…
Ich kann sie ja nicht in Mysql abspeichern, sonst würde ja jeder User eine eigene Tabelle haben… (oder würde das mysql nicht überlasten…)
Ich müsste Daten wie: Eiheitenname, maximal-minimal Schaden, verletzter minimal Schaden usw…)
Ich denke mir csv oder txt Dateien wäre es seht umständlich…
Es muss aber ein Format sein wo ich per php zugreifen kann.
Du brauchst nur eine SQL-Tabelle für generelle Angaben machen (ID, Name, Stärke, usw) und dann machst du eine Tabelle, in der Pro Zeile eingetragen wird, wieviele Einheiten davon ein Spieler besitzt. Also SpielerID, EinheitenID, Anzahl (evtl auch sowas wie Angriffsziel, Angriffsstartzeit usw)
Ja aber jeder Spieler hat ja mehrere Einheiten.
Meinst du dass ich jede Eiheit auflisten soll und dann mit "bezug_id " oder ähnlichem dem Spieler Zuordnen soll?
Keine schlechte Idee
Oder du schreibst ne Funktion, die die einzelnen Einehiten trennt… Beispiel:
+-----------+-----------+
| usert_id | armee_id |
+-----------+-----------+
| 0 | 1:3;2:4; |
+-----------+-----------+
dann die Funktion:
[php]
function EinheitenFinden($einheit){
$einheiten = explode(„;“, $einheit);
return $einheiten;}
[/php]Natürlich sehr einfach, aber müsste funktionieren und belastet die Db nicht allzusehr!
Gruß, Fredmonster!
+----+------+----------.....
| ID | Name | ... hier können weitere infos kommen
+----+------+----------.....
Und dann noch eine Tabelle pro Einheitentyp:
+----+------+----------+------.....
| ID | Name | BezugsID | Punkte etc.
+----+------+----------+------.....
Nun hat jeder spieler eine einzelne ID und jede Einheit eine BezugsID die auf einen der User passt. Dabei kann eine BezugsID bei den Einheiten mehrmals vorkommen (ein User kann mehrere Einheiten von einem Typ haben), aber die ID bei den Usern nicht (es gibt keine zwei gleichen User und man muss eine Einheit eindeutig zuordnen können).
Für jede Einheit eine Tabelle anzulegen ist Schwachsinn!
Weißt du, wieviele Tabellen das erst werden, wenn in dem Game richtig viele Einheiten eingebaut sind?! Mein System beruht auf 3 Tabellen (User, Einheiten und Wer-hat-welche-und-wieviele-Einheiten), da kann man problemlos neue Einheiten einfügen, ohne eine komplette Tabelle extra anlegen zu müssen. Ist meiner Meinung nach viel einfacher. Zumal dann bei der Kampfberechnung bei deiner Idee unmengen Querys oder ewig lange Joins nötig wären, was nicht sehr gut für die Laufzeit ist.
Das kommt wiederrum auf den Aufbau des Games an. Sind die Einheiten von Grundauf verschieden, dann lohnt sich evtl. eine Tabelle pro Einheit (sonst wären eine Menge Zellen leer). Oder man macht eine Mischung aus beiden und packst ähnliche Einheiten zusammen in eine Tabelle.
Naja, ich hab jetzt an zwei Strategie-Spielen mitgewirkt und dieses System hat sich dabei eigentlich bewährt. Es ist nicht das Nunplusultra, aber ein guter Ansatzpunkt für dich. Mit der zeit wirst du das eh immer mehr deinen Bedürfnissen anpassen.