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

Item_DB erstellen > eine oder mehrere Tabellen - Anfänger

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Madtrick, 9 Januar 2019.

  1. Madtrick

    Madtrick Neuer Benutzer

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

    akretschmer Datenbank-Guru

    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.
     
  3. Madtrick

    Madtrick Neuer Benutzer

    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:

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