Quest-System

Ich bin gerade dabei, ein Browsergame zu entwickeln. Dabei stehe ich vor folgendem Problem:
Ich habe ein MySQL-Tabelle, in der die verschiedenen Quests aufgelistet sind. (was man braucht und bekommt)
Wenn ein Spieler ein Quest bearbeitet hat, soll es auch als bearbeitet gekennzeichnet werden. Ich weiß aber nicht, wio ich das speichern soll.
eine Tabelle mit allen bearbeiteten quests wäre zu groß. ich habe mir auch überlegt, alle bearbeiteten quests eines users in ein array zu packen, welches ich dann mit hilfe von serialize in die tabelle der user schreibe. doch bei der überprüfung, ob das quest schon bearbeitet wurde, könnte das den server zu stark belasten, oder?
Habt ihr eine idee, das problem zu lösen?

Danke im vorraus!

Hoffentlich nicht hier auf bplaced - denn das wäre ein Verstoß gegen die Nutzungsbedingungen.

[quote]Wenn ein Spieler ein Quest bearbeitet hat, soll es auch als bearbeitet gekennzeichnet werden. Ich weiß aber nicht, wio ich das speichern soll.
eine Tabelle mit allen bearbeiteten quests wäre zu groß.[/quote]
Woraus ziehst du diesen Schluss?

Das ist im allgemeinen nicht sinnvoll.
(In Ausnahmefällen verzichtet man in solchen Situationen auf die Normalisierung, aber nur bei wirklich riesigen Datenmengen - bspw. flickr speichert die Tags für seine Bilder IIRC bewusst nicht normalisiert ab.)

die tabelle mit den bearbeiteten quests würde doch irgendwann zu groß werden, wenn viele quests von vielen spielern bearbeitet werden. irgendwann wären dass dann 5000 einträge.

PS: nein, ich hoste das browsergame nicht bei bplaced.

5000 Datensätze sind nicht „groß“ oder „viel“ - die sind ein Witz, über den jedes halbwegs anständige DBMS nur müde lächeln kann.

ok, dann werde ich eine neue Tabelle mit den bearbeiteten Quests erstellen.
ich will mich nur ungern bei den hostern unbeliebt machen…

Danke für die Hilfe!

Êrst bei 21 Millionen Datensätzen wird haarig. Ich hab mir dabei mit einer Endlooschleife undendlich produziert.
Nun zum Problem. Entweder du machst eine eigene Tabelle, oder du fügst bei der Tabelle der Spieler einfach ein Feld “quests” an und speicherst darin die ID’s, Namen oder was auch immer der Quests…sollte dann so aussehen: 1,5,7,10…
Mit explode kannst du sie wieder trennen, abfragen, neue hinzufügen, und abspeichern…

Letzteres ist eben das, was im Normalfall nicht empfehlenswert ist.