3D-Koordinatensystem

Nord-Süd-Richtung

Erfahrenes Mitglied
Guten Abend Com!

Ich möchte ein Koordinatensystem mit x,y,z Achsen erstellen. Anfangs 40*40*5, später dann auch 100*100*15.
Ergibt logischerweise 8.000 bzw 150.000 mögliche Felder.
Wo speichere ich diese ab? Ich arbeite mit php, also kommen ja eigentlich nur Dateien oder Datenbanken (MySQL) in Frage.
Ich bezweifel allerdings das eine Datenbank bzw Tabelle 150.000 Einträge zu speichern mag.
Also werde ich wohl auf z.B. *.txt Dateien zurückgreifen.
Mein Plan sieht bis jetzt so aus, das ich in jede Zeile die möglichen Koordinaten schreibe, die dort geupdatet werden (wie stelle ich das eigentlich genau an?), und natürlich auslese. (natürlich gibt es weitere Infos als nur die 3 Koordinatenpunkte).
Bräuchte mal jemanden der meinen Gedankengang nachvollzieht, und mögliche Denkfehler etc berichtigt :D
Oder soll ich einen ganz anderen Ansatz wählen?
mfg
NSR

PS: Da die Frage eh als erste auftauchen wird. Ich brauche es für ein Browsergame in dem der Spieler Planet usw neu ersiedeln kann. In der Suche habe ich leider nichts passendes gefunden.
 
Hi,

Ich bezweifel allerdings das eine Datenbank bzw Tabelle 150.000 Einträge zu speichern mag.
Also werde ich wohl auf z.B. *.txt Dateien zurückgreifen.
:eek:

Glaubst Du, das die eine-million-irgendwas Beiträge dieses Forums in .txt-Dateien gespeichert sind? :suspekt:

Ich habe ja noch nie ein Browsergame gemacht und verpüre auch immer noch keinen Drang, dies nachzuholen, aber muss man denn da von vorneherein alle möglichen Punkte des Raumes speichern, auch, wenn da gar nix is? Eigentlich müsstest Du doch nur die Grenzen konfigurieren und Dir Datenstrukturen überlegen, wie Du Deine Objekte koordinatenbezogen speichern kannst und dann speicherst Du auch nur das, was da ist.

Nimm als ganz einfaches Beispiel einen Planeten und geh mal davon aus, das Ding ist kugelrund. Dann reicht als Information der Radius und der Ortsvektor auf den Mittelpunkt. Das sind wesentlich weniger Daten, als jeden Punkt des Planeten zu speichern.

Nur mal so als Denkansatz...

LG
 
Hi

Glaube du hast mich falsch verstanden. Es ist eine Galaxie von (erstmal vereinfacht) 40*40 Feldern. Auf Jedem Feld ist ein Sonnensystem mit 5 Planeten.
Und das muss halt gespeichert werden ;). Maximal können etwa 20.000-100.000 Planeten auf einmal besiedelt sein (Je nach dem wie der Server mitmacht). Soll das wirklich alles in eine Datenbank?
Und ich glauben das hier eine extra neue Datei angelegt wird, für jeden neuen Thread ;)
 
Hi,

na, wenns Da so kuschelig werden soll, dann musst Du das halt auch alles speichern. Was aber bringt Dich auf die Idee, relationale Datenbanksysteme wurden erfunden, wenn Textdateien die bessere Alternative sind?

Und ich glauben das hier eine extra neue Datei angelegt wird, für jeden neuen Thread

Das war jetzt aber 'n Scherz oder? :suspekt:

LG
 
Hi

Glaube du hast mich falsch verstanden. Es ist eine Galaxie von (erstmal vereinfacht) 40*40 Feldern. Auf Jedem Feld ist ein Sonnensystem mit 5 Planeten.
Und das muss halt gespeichert werden ;). Maximal können etwa 20.000-100.000 Planeten auf einmal besiedelt sein (Je nach dem wie der Server mitmacht). Soll das wirklich alles in eine Datenbank?
Und ich glauben das hier eine extra neue Datei angelegt wird, für jeden neuen Thread ;)

Also ich würde sagen das sind verhältnismäßig noch sehr kleine Datenmengen mit denen Datenbanken nicht ins schleudern geraten sollten. Da gibt es wirklich andere Anwendungen die das ganze schon mehr belasten.

SAP z.B. hat in der Basisinstallation 40.000 TABELLEN soweit ich weiß. Und dann überleg mal wenn ein Unternehmen wie Siemens daher kommt und ihre 430.000 Mitarbeiter verwaltet - da kommen aber noch andere Datenmengen zusammen. (Falls du schonmal mit SAP gearbeitet hast weißt du was man alles speichern kann und wie sehr das ins Detail geht).
Gut - Solche Unternehmen werden sicher nicht nur eine SAP-Installation nutzen und die Last auf mehrere Datenbankserver verteilen - das liegt aber wohl nicht an der Datenmenge sondern eher an der Anzahl der Zugriffe und Änderungen pro Sekunde.

Aber mach du mal mit deinen Textdateien - wirst schnell merken das es total sinnlos ist. ;)

Aber sooo sehr liegst du mit deiner Idee ja nicht daneben - Datenbanken speichern ja auch Tabellen in einzelnen Dateien usw.
Also wenn du eine neue Klasse schreibst die sich um das verwalten deiner Textdateien kümmert wirst du zwar ewig brauchen bis es
relativ fehlerfrei seinen zweck erfüllt aber dann hast du auch eine Art DBMS geschrieben. Allerdings mit viel weniger Sicherheit,
Freiheit, Zuverlässigkeit, Geschwindigkeit, .................

lg
 
Zuletzt bearbeitet:
Abend

Ich versuche dann nun folgenden Lösungsweg:
Mittels 2 for-schleifen werden mit js die ganzen Felder erzeugt, und mit einem OnClick belegt. Dort wird dann ein Request an eine .php datei gesendet die die Planeten (z-koordinate) von der x/y-koordinate aus der Datenbank sucht.
Speichern sollte ich dann also alles in der Datenbank. Dann nehm ich dafür aber eine neue Datenbank oder? Also nicht in die Datenbank mit den ganzen Gebäuden und so :)
 
Definiere was für dich eine "neue Datenbank" ist?

Ich glaube du meinst eine neue Tabelle.
Und ja, das wär sehr ratsam :)

lg
 
Hi,

wieso speicherst du auch nicht besiedelte Planeten in der Datenbank? Wenn du weißt, dass jeder Planet existiert, müssen doch nur dann Daten gespeichert werden, wenn sich etwas daran ändert, er also z. B. besiedelt wird.

Mamphil
 
http://de.wikipedia.org/wiki/Datenbank
Insbesondere auch die Literaturangaben. Wenn du dich mit Datenbanken ueberhaupt nicht auskennst wuerde ich von so einem Projekt erstmal absehen. Grundsaetzlich kann eine "Datenbank" so viel speichern wie du dir nur vorstellen kannst. Der Google-Index ist eine "Datenbank". Es haengt dann im Prinzip nur von der Hardware ab.
 

Neue Beiträge

Zurück