beim registrieren Datenbank und Name mit Nickname erstellen

BigWhiteLion

Benutzer
Beiträge
14
Hallo, ich sitze gerade an dem Problem, wie ich jedem Mitspieler seine eigene Datenbank zukommen lasse und diese Datenbank dann nach dem Nickname benennen kann.
Ich schlage diesen Weg ein mit einer Datenbank je Spieler, weil jeder Spiele gleiche Datentabellen benutzen soll wie z. B. tablename Fuhrpark nur der Inhalt des Fuhrparks unterscheidet sich.
Danke für eure Hilfe, da ich neu bin sage ich mal ein HALLO in die Runde
Gruß BWL
 
Werbung:
Eine Datenbank pro Spieler ist sicher nicht das, was Du möchtest?! Ganz sicher nicht!

Überleg Dir bitte mal, wie Du SQL Statements bauen möchtest, die eine Auswertung zum Punktestand liefern, z.B. TOP TEN.
Willst Du für 100 Mitspieler 100 Statements absetzen und dann die Ergebnisse verrechnen?

Ich hoffe, Du überlegst es Dir noch mal anders!

Mehrbenutzersysteme arbeiten immer so, dass die ID des Users in allen notwendigen (also Benutzer abhängigen Tabellen) mitgeführt wird als Referenz. Das ergibt dann 1 Abfrage für TOP TEN, egal wieviel Nutzer.
 
diverse Lösungen, z.B. könntest Du Row Level Security verwenden (wenn MySQL das mal kann), oder halt einfach die User-ID mit speichern und so auf Eine-Tabelle-Je-User verzichten. Das skaliert nicht.
 
Ok wie löse ich dann das Problem, dass User 1 z.B Fahrzeug A und B kauft, ich diese in seinem TABLE Fuhrpark speichere und User 2 Fahrzeug A un C in seinem TABLE Fuhrpark speichert?
 
Fangen wir mal so an...es soll ein Internetspiel ohne große Grafiken werden siehe Beispiel www. lkw-sim.com.
Wenn sich ein Spieler neu registriert soll automatisch ein TABLE mit seinen Fahrzeugen, ein TABLE mit offenen Touren, ein TABLE mit seinen Angestellten erstellt werden. Da benötige ich ja eindeutige Bezeichner um im laufendem Programm auch die richtigen TABLE anzusprechen. So kam ich auf die Idee jedem Spieler eine Datenbank zukommen zu lassen, somit habe ich immer die gleichen Tablenamen und muss jedem user nur den DB-Zugriff auf seine DB erteilen.
 
Mit nem Wortschnipsel wie ID des Users mitgeben komm ich auch nicht weiter. Wenn ich mir vorstelle ich habe 100 user mit je 100 Fahrzeugen wird das doch total unübersichtlich mit einem TABLE...oder nicht
 
Codeschnipsel besser?

Code:
test=*# create table eigentuemer(id int primary key, name text);
CREATE TABLE
test=*# create table fahrzeuge(id serial primary key, eigentümer int references eigentuemer, kennzeichen text);
CREATE TABLE
test=*#
 
Oder doch noch eine andere Möglichkeit....Fahrzeug kaufen aus einem TABLE Fahrzeuge als primary key die Fahrzeug identnummer....mit Select das Fahrzeug auslesen und mit der Fahrzeugidentnummer ein Objekt der Klasse Fahrzeuge erzeugen und diese dann in einer Tabelle mit html/css wiedergeben. Der Spieler hat dann halt sagen wir mal 100 Objekte mit einer eindeutigen identnummer, womit das Fahrzeug auch verkauft werden kann an einen anderen Spieler ohne Gefahr zu laufen doppelte ID s zu haben
 
Akretschmar verstehe ich das richtig du erstellst einen TABLE Eigentümer, in die Spieler, die sich registriert haben gespeichert werden und dann einen zweiten TABLE Fahrzeuge mit der Refernz auf die Eigentümer. Ist dieser TABLE dann nur für den Spieler?
 
Nein, dort landen alle Fahrzeuge. Jedes bekommt einen Verweise, zu welchem Spieler (Eigentümer) es gehört.
Ok danke dafür....jetzt nur so das ich es verstanden habe....ich habe eine DB mit einem TABLE Autohaus, in der stehen die verschiedenen Fahrzeugtypen, die man kaufen kann. Dann habe ich ein TABLE Eigentümer, in diese die Spieler nach erfolgreicher Registrierung geschrieben werden. Jetzt kauft Spieler A ein Fahrzeug des Typ Sattelzug , dieser Datensatz wird kopiert und in den TABLE Fahrzeuge mit der Referenz zu Eigentümer A aus dem TABLE Eigentümer. Dann setzt ich den Datensatz noch auf CASCADE, damit beim Fahrzeugkauf der Spieler B als Referenz gilt....hoffe das ist jetzt richtig gedacht und macht auch keine Probleme bei 100 Spielern mit je 200 Fahrzeugen
 
Werbung:
Zurück
Oben