n:m Relation

trix0

Neuer Benutzer
Beiträge
1
Hallo Leute,

ich bin recht neu im Bereich MySQL bzw. SQL allgemein. Ich habe davor immer mit XML-Datasets gearbeitet und dort die n:m Relation angewendet. Und bei beenden des Programmes erfolgte das Eintragen in die Datenbank.

Jetzt will ich ein GameServer aufsetzen mittels JavaScript und kann daher schlecht mit XML-Datasets arbeiten. Das heißt das ich die n:m-Relation selbst direkt in die Datenbank einbringen muss. Wie gehe ich hierbei SQL vor?

ich habe einen Player mit der ID 1 und name ist Jack, Jack hat selbst etwas im eigenen Inventar (Gegenstände und Geld 1 Handy und Fahrzeugschlüssel). Der Jack hat noch mehrere Bankkonten bei mehreren Banken und überall sind natürlich verschiedene Geldbeträge drauf. Desweiteren hat er Mehrere Fahrzeuge wobe es sein kann, das er ein Fahrzeug doppelt hat (vom Hersteller- und Fahrzeugtyp) mit unterschiedlichen Motorleistungen, KM-Stand und eigenes Inventar natürlich. Desweiteren ist Jack nicht dumm und hat paar Sachen gelernt, z.B. ist er im Bergbau LVL 2 un hat die dazu gehörigen bücher 1 und 2 gelesen. Buch 3 hat er noch nicht gelesen. Jack hat auch ein Handy mit mehreren Rufnummern die wiederum verschiedene Nachrichten enthalten und Anrufe.

Da ja Jack irgendwie Geld verdienen muss, muss er Irgendwo arbeiten. Deswegen arbeitet er, weil er Bergbau gelernt hat in einer Bergbau Firma, die erze abbaut und in einer Gießerei um die erze zu verarbeiten. Bei der Bergbau Firma kann er selbst die Preise bestimmen, wir Teuer er die Erze verkaufen will und kann Mitarbeiter einstellen sowie entlassen. Bei der Gießerei kann er nur die gekauften Erze einlagern und in die Maschine Packen, sowie diese Anschmeißen um Barren raus zu bekommen. Mitarbeiter darf er dort nicht einstellen oder entlassen, sowie Preise darf er nicht bestimmten.

ich hab das mal alles hier zusammen gemappt:n_m Relation.png

Ich hoffe ich konnte mein Problem gut schildern ^^
 
Werbung:
Was ist denn nun Dein Problem?

Wenn Du versuchst, nun z.B. Tabellen für Autos, Bank, Handy, Firma, Inventar und Skills zu machen, um dort die Besitztümer abzulegen, dann wirst Du eines Tages weitere Dinge dazunehmen müssen (sagen wir mal Schiffe, Weltraumraketen, Flugzeuge). Das ist also möglicherweise der falsche Ansatz, obwohl das via EAV prinzipiell lösbar ist. Andere Idee wäre der Einsatz von JSON - Dokumenten. Du willst eine relationale DB verwenden, was gut ist. Die Wahl mit MySQL ist es möglicherweise nicht.
 
Werbung:
Ich sehe es ähnlich.
Versuch in dem ganzen Kram, die Kernmodelle zu finden und umzusetzen.
Firma/Konto/Bank, Spieler/Spielerdaten, -Gruppen, Kommunikation/Messaging/Handy/Adressen, ... Dinge, die zentrale Bedeutung haben ..
Dann sehe ich das Skillbauem, auch ab in eine Tabelle.

Und dann: Du hast gerade in Postgres wunderbare Möglichkeiten, klassische Modellierung mit JSON Documents zu verbinden. Damit kannst Du dank der implementierten JSON Funktionalität und Kombi mit SQL ungeheuer flexibel arbeiten inkl. Transaktionssicherheit und allem zipzap. Ich würde gerade bei neuen oder exotischen Dingen einfach mit "geduldigen" JSON Spalten arbeiten.
Was sich "gefestigt" hat, kann man ggF. in das relationale Modell übernehmen.
 
Zurück
Oben