Guten Morgen Habo.
Ich rätsel gerade über den möglichen Datenbank-/Tabellenaufbau in einem Onlinegame zur Option Forschungen.
Zwar arbeite ich zur Zeit nicht an einen Onlinegame, aber die Frage stelle ich mir denoch.
Angenommen es gibt schon Tabellen wie Forschungen (id, name, beschreibung, ..- hier sind alle möglichen Forschungen aufgeführt), Spieler (id, name, passwd), Wer_forscht_was (id, spielerid, forschungenid, beginn, ende,..- Beziehungstabelle für Forschungen und Spieler).
Nun das Problem. Die Strategiespielzocker wissen sicher das man in manchen Spiel bestimmte Forschungen erst abgeschlossen haben muss, damit man die nächste eröffnet bekommt.
Aber wie schreib ich das in einer SQL-Tabelle, das ich für eine bestimmte Forschung erst eine andere benötige.
Meine Idee war gewesen, ich mache in der Forschungentabelle, für jede einzelne Forschung eine neue Spalte und gebe den Feldern dann entweder den Wert 0 oder 1. 0 heißt - Forschung wird nicht für die Forschung benötigt, 1 heißt - sie wird für die Forschung benötigt.
Das würde etwa so aussehen: (id, name, beschreibung, forschung1, forschung2, ...).
Andere Idee wäre, für die Forschungstabelle eine Beziehungstabelle für sich selbst zu machen. Etwa so (id, forschungsid, forschungbenoetigtid) Das hieße dann, das die Forschungsid die eigentliche Forschung ist und dahinter eine Forschung steht die für diese Forschung benötigt wird. Aber wenn ich nun für die eine Forschung mehrere Forschungen benötige, muss ich für die eine Forschung einen neuen Datensatz, mit einer weiteren, benötigten Forschung anlegen. Das gibt böse Doppelungen. Hinzu könnte ja auch noch kommen das die Forschungen durch nochmaliges Forschen eine Stufe steigen.
Nun könnte es ja auch passieren das man für eine Forschung eine bestimmte Stufe der anderen Forschung benötigt. Bei meinen Vorschlägen müsste ich die Tabellen nur etwas umändern. Beim Vorschlag 1, wären die Stufen dann die Zahlen. Buchstaben könnte ich dann auch zulassen (z.B. so x=nicht benötigt, 0=benötigt aber keine Stufe, 5=benötigt Stufe 5).
Bei meinem zweiten Vorschlag würde ich noch eine Spalte aufbauen, die ähnliche Werte wie oben steht, beinhaltet.
Kalkuliert bitte das Stufensystem mit ein.
Nunja, nun frage ich euch wie ihr die Datenbank oder Tabellen aufbauen würdet?
In Zeiten von platzsparenden und leistungsschwachen Hostern sollten man ja schon vorherein darauf achten wie man die Datenbank anlegt.
Ich rätsel gerade über den möglichen Datenbank-/Tabellenaufbau in einem Onlinegame zur Option Forschungen.
Zwar arbeite ich zur Zeit nicht an einen Onlinegame, aber die Frage stelle ich mir denoch.
Angenommen es gibt schon Tabellen wie Forschungen (id, name, beschreibung, ..- hier sind alle möglichen Forschungen aufgeführt), Spieler (id, name, passwd), Wer_forscht_was (id, spielerid, forschungenid, beginn, ende,..- Beziehungstabelle für Forschungen und Spieler).
Nun das Problem. Die Strategiespielzocker wissen sicher das man in manchen Spiel bestimmte Forschungen erst abgeschlossen haben muss, damit man die nächste eröffnet bekommt.
Aber wie schreib ich das in einer SQL-Tabelle, das ich für eine bestimmte Forschung erst eine andere benötige.
Meine Idee war gewesen, ich mache in der Forschungentabelle, für jede einzelne Forschung eine neue Spalte und gebe den Feldern dann entweder den Wert 0 oder 1. 0 heißt - Forschung wird nicht für die Forschung benötigt, 1 heißt - sie wird für die Forschung benötigt.
Das würde etwa so aussehen: (id, name, beschreibung, forschung1, forschung2, ...).
Andere Idee wäre, für die Forschungstabelle eine Beziehungstabelle für sich selbst zu machen. Etwa so (id, forschungsid, forschungbenoetigtid) Das hieße dann, das die Forschungsid die eigentliche Forschung ist und dahinter eine Forschung steht die für diese Forschung benötigt wird. Aber wenn ich nun für die eine Forschung mehrere Forschungen benötige, muss ich für die eine Forschung einen neuen Datensatz, mit einer weiteren, benötigten Forschung anlegen. Das gibt böse Doppelungen. Hinzu könnte ja auch noch kommen das die Forschungen durch nochmaliges Forschen eine Stufe steigen.
Nun könnte es ja auch passieren das man für eine Forschung eine bestimmte Stufe der anderen Forschung benötigt. Bei meinen Vorschlägen müsste ich die Tabellen nur etwas umändern. Beim Vorschlag 1, wären die Stufen dann die Zahlen. Buchstaben könnte ich dann auch zulassen (z.B. so x=nicht benötigt, 0=benötigt aber keine Stufe, 5=benötigt Stufe 5).
Bei meinem zweiten Vorschlag würde ich noch eine Spalte aufbauen, die ähnliche Werte wie oben steht, beinhaltet.
Kalkuliert bitte das Stufensystem mit ein.
Nunja, nun frage ich euch wie ihr die Datenbank oder Tabellen aufbauen würdet?
In Zeiten von platzsparenden und leistungsschwachen Hostern sollten man ja schon vorherein darauf achten wie man die Datenbank anlegt.