Item_DB erstellen > eine oder mehrere Tabellen - Anfänger

Madtrick

Neuer Benutzer
Beiträge
2
Hi.

Geplant ist eine Webseite zum Suchen nach passenden Items für ein Spiel. Die Suche soll über verschiedene Attribute (Eigenschaften des Items) gehen, so dass unter verschiedenen Gesichtspunkten das jeweils Beste gefunden werden kann.

Ich habe einiges recherchiert und bin Stellenweise verunsichert.

Meine Überlegung war eine DB in MySQL zu erstellen.
Eine Tabelle anzulegen in ungefähr dieser Form:

Tabelle: Item
ID - Kategorie - Item - Klasse - Itemname - Itemtypname - ItemRunenwort - Dateiname - Bildname -
Feldanzahl - Sockelanzahl - AngriffsV - BenGeschick - BenStärke - etc.... weitere ca. 50 Eigenschaften...

Zum Verständnis über Aufbau und Struktur habe ich mich an eine Hilfeseite zu DB's orientiert und versucht meine gedanklich angelegte Tabelle zu normalisieren und die Daten zu strukturieren.

So käme ich auf ca. 6 Tabellen... wobei ich mir nicht ganz sicher bin, ob ich da nicht auf dem Holzweg bin. Deshalb bin ich nun hier und hoffe den rechten Denkanstoß zu bekommen.

Das Spiel-Item an sich ist für mich die Entität und ich habe jede Spalte meiner Tabelle als Attribut gesehen.
Nun frage ich mich aber, ob sich in den Spalten nicht doch noch weitere Entitäten verstecken, die ich in weitere Tabellen auslagern sollte.

ID - Primärschlüssel
Kategorie - 4 oder 5 Werte vom Typ string --- In separate Tabelle "Kategorie" packen und mit Fremdschlüssel in die Tabelle Item in Beziehung setzen?
Item - ca. 75 verschiedene Werte vom Typ string --- Gleiche Frage wie Kategorie.
Klasse - ca. 8 verschiedene Werte fom Typ string --- Gleiche Frage wie Kategorie.
Itemname - sehr viele... teilweise gleiche. Typ ist string

Bis hier hin hat jedes Item immer einen Wert im entsprechendem Datenfeld.
Ab hier kann ein Wert vorhanden sein.

Itemtypname und ItemRunenwort - viele... teilweise gleiche. Typ ist string --- Gleiche Frage wie Kategorie.
Dateiname - Bildname - für jedes Item immer vorhanden. Generieren? --- ist das möglich? Eigene Tabelle?

Alle weiteren Datenfelder können Werte (größer 0) haben oder leer sein -
"Sockelanzahl - AngriffsV - BenGeschick - BenStärke - etc...." - Typ int

Wie könnte ein möglicher Ansatz sein? Denke ich eventuell in die falsche Richtung oder zu kompliziert?
Da ich nun weitere Webseiten zu Hilfe genommen habe, teils mit unterschiedlichen Erklärungen, bin ich mir meines Gedankenweges nicht ganz sicher.

Hoffe ich konnte das Vorhaben einigermaßen verständlich beschreiben.

Würde mich sehr über Gedanken, Rat und Tips freuen.
 
Werbung:
um das mal zu versuchen zu entwirren:

  • wenn Du z.B. N Kategorien hast, und jede dieser hat spezifische Eigenschaften (Felder), dann verwende Foreign Keys
  • wenn Du je Object eine variable Menge von Eigenschaften hast (z.B. bei Waren: ein Auto hat meinetwegen Farbe und Leistung, eine Leberwurst keine Leistung aber Geschmack), dann gibt es mehrere Ansätze. Eine nennt sich EAV (Entity Attribute Value, google weiß mehr). Eine andere wäre die Anwendung von Key-Value-Speichern oder JSON. PostgreSQL hat dazu super Features.
 
Jep. Denke ich habe es vlt. nicht gut beschrieben. Ich beschreibe vlt. noch einmal an Hand eines Beispiels, was ich vor habe.

Es geht um das Erfassen jedes Wertes eines Objektes. Mit Objekt meine ich das Item welches im Spiel gefunden werden kann. Ziel ist es danach, geeignete Items anhand vorgegebener Eigenschaften oder Werte heraus zu filtern und anzeigen zu lassen. Anbei habe ich ein paar Bilder, wie so ein Objekt (Item) ausschaut.
Jedes Bild zeigt ein Item mit dem Namen und den Eigenschaften dieses Objektes. Diese sollen halt erfasst werden. Manche Items haben die gleichen Eigenschaften nur mit unterschiedlichen Werten. Und manche haben ganz unterschiedliche Eigenschaften.

Seiner Zeit habe ich eine Excel-Tabelle angelegt. Diese ist natürlich ziemlich mächtig geworden. 'Je Spalte war halt eine Eigenschaft. Und jede Zeile halt ein Datensatz des Items. Das ganze ist halt schwer durchsuchbar, wenn man ein Item sucht, welches min. ab Level 30 zu gebrauchen ist und ein Plus zu einer oder mehreren bestimmten Eigenschaften geben soll.

Daher die Idee der Datenbank und einer internen Webseite zur Erfassung und zur Suche.

Ich denke der Punkt 2 deines "Entwirrungsversuches" wird dann eher passen. Ich befrage dann jetzt erst einmal Onkel Google dazu. Danke dir schon einmal.
 

Anhänge

  • magic - Chromatisches Amulett des ewigen Lebens.png
    magic - Chromatisches Amulett des ewigen Lebens.png
    26,7 KB · Aufrufe: 3
  • unique - Der Schutz.png
    unique - Der Schutz.png
    73,6 KB · Aufrufe: 3
  • unique - Duriels Schale.png
    unique - Duriels Schale.png
    97,2 KB · Aufrufe: 3
  • unique - Finger der Knochen.png
    unique - Finger der Knochen.png
    79,5 KB · Aufrufe: 3
Werbung:
Neben EAV wird häufig noch NoSQL (Not only SQL) genannt, man könnte auch eine SQL DB mit XML Spalte nutzen um die Eigenschaften des Items in der XML Spalte ablegen.

Wenn du keine JSON Unterstützung hast ist EAV aber vermutlich die schnellste Variante denn du wirst sicher nach Item-Eigenschaften suchen wollen.
 
Zurück
Oben