1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

beim registrieren Datenbank und Name mit Nickname erstellen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von BigWhiteLion, 19 April 2020.

  1. BigWhiteLion

    BigWhiteLion Benutzer

    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
     
  2. dabadepdu

    dabadepdu Fleissiger Benutzer

    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.
     
    Walter gefällt das.
  3. akretschmer

    akretschmer Datenbank-Guru

    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.
     
  4. BigWhiteLion

    BigWhiteLion Benutzer

    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?
     
  5. BigWhiteLion

    BigWhiteLion Benutzer

    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.
     
  6. akretschmer

    akretschmer Datenbank-Guru

    beide deiner Ideen sind falsch. Noch mal sage ich es aber nicht.
     
  7. BigWhiteLion

    BigWhiteLion Benutzer

    Was sind sas für Antworten, wenn ich zu lesen kriege das ist falsch , aber keiner erklärt wie...wofür dann überhaupt ein Forum Danke
     
  8. akretschmer

    akretschmer Datenbank-Guru

    siehe #2, siehe #3. Wenn Du nicht lesen WILLST, warum fragst Du dann?
     
  9. BigWhiteLion

    BigWhiteLion Benutzer

    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
     
  10. akretschmer

    akretschmer Datenbank-Guru

    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=*#
    
     
  11. BigWhiteLion

    BigWhiteLion Benutzer

    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
     
  12. BigWhiteLion

    BigWhiteLion Benutzer

    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?
     
  13. dabadepdu

    dabadepdu Fleissiger Benutzer

    Nein, dort landen alle Fahrzeuge. Jedes bekommt einen Verweise, zu welchem Spieler (Eigentümer) es gehört.
     
  14. BigWhiteLion

    BigWhiteLion Benutzer

    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
     
  15. akretschmer

    akretschmer Datenbank-Guru

    Du setzt den RI-Constraint auf CASCADE... bitte besorge Dir ein Buch über Datenbankgrundlagen.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden