Vinzenz Mai: query aus 3 Datenbanktabellen

Beitrag lesen

Hallo Oliver,

kurz die Struktur der 2 Tabellen.

TBL: player

  • id - player - clan - rasse -

  • 1  - kev    - 1    - pirat -
  • 2  - plom   - 1    - pirat -
  • 3  - plom   - 2    - pirat -

Nein, Tabellen sind in aller Regel nach unten offen ...
Es wäre wahrscheinlich sinnvoll, die "Rasse" in eine eigene Tabelle
auszulagern - oder einen ENUM-Datentyp dafür zu verwenden, falls das
von Dir verwendete und unbekannte Datenbankmanagementsystem (DBMS,
so etwas wie Oracle, DB2, MS SQL-Server, PostgreSQL, Sqlite, MS Access
oder vielleicht MySQL oder etwas ganz anderes) diesen Datentyp kennt.

TBL: clan

  • id - clan -

  • 1  - clan1-
  • 2  - clan2-

Diese Tabelle sieht ok aus.

TBL: planeten

  • id - planet1 - planet2 - planet3 - player -

  • 1  - 123     -  345    -  678    -   1    -
  • 2  - 555     -  111    -  888    -   1    -
  • 3  - 999     -  777    -  120    -   2    -

Diese Tabelle ist fehlerhaft aufgebaut. Genauer gesagt ist sie
offensichtlich so etwas wie eine Zuordnungstabelle von Spielern
zu Planeten. Deswegen benötigst Du eine eigene Tabelle planeten,
in der nur die direkt von den Planeten abhängigen Daten gespeichert
sind und die es völlig einfach ermöglicht, neue Planeten anzulegen
und eine weitere Tabelle, die die Zuordnung erledigt. Wie das im
einzelnen aussieht, hängt einfach von Deinen Anforderungen ab.

Erläutere bitte die ersten beiden Datensätze. Was sollen diese
Datensätze bedeuten?

Ich übergebe nur die Clan ID via GET.

Das ist für Datenbankfragen völlig unwichtig und uninteressant.

Wie würdet ihr das Problem lösen?
Eventuell andere Tabellen Struktur?

Mit einer sauberen Tabellenstruktur ist es normalerweise kein
Problem, die einem Clan zugeordneten Planeten mit ihren Werten
anzuzeigen.

Was hier fehlt, ist eine klare Erläuterung der Bedeutung des
Inhaltes Deiner Planetentabelle, die grundsätzlich gesehen falsch
aufgebaut ist. Ohne diese Erläuterung kann man Dir meiner Meinung
nach nicht weiterhelfen. Jedenfalls ist es fast immer sinnvoll,
durch sinnvoll aufgebaute Tabellenstrukturen überflüssige
Programmierung in der API zu vermeiden. Wenn Du dort Schleifen
benötigst, um eine Zuordnung zu finden, dann ist das fast immer
ein sicheres Anzeichen dafür, dass die Struktur ungünstig gewählt
ist. Baue daher um.

Freundliche Grüße

Vinzenz