[SQL] optimale Datenbankstruktur

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Satoru, 28. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 28. Juni 2010
    optimale Datenbankstruktur

    Hallo,

    ich bin gerade dabei meine mySQL Datenbank zu stukturieren, und bin dabei auf folgendes Problem gestoßen:

    Bei der Anwendung die ich programmiere werden der Datenbank Items übergeben. Dabei wird zuerst überprüft ob dieses Item schon registriert wurde oder ob es noch unbekannt ist. Generell könnte ich dafür ja eine Tabelle 'Item' erstellen, in der die ID, Name, etc.. drin steht.
    Jetzt ist es aber so, dass mit dem Idem noch ein Wert übergeben wird, der sich aber ändern kann, ähnlich wie ein Aktienkurs. Wenn ich also ein Item der Datenbank übergebe, und feststelle, dass es schon registriert ist, dann möchte ich den aktuellen Wert des Items natürlich neben den alten Werten dieses Items abspeichern, so dass ich den Kurs von diesem Item leicht überwachen kann.

    Meine Frage ist jetz, wie ich das am besten realisieren kann.
    Eine allgemeine Item-Tabelle in der alle Items (ohne Wert) aufgeführt sind, scheint mir in jedem Fall sinnvoll, aber soll ich dann

    -für jedes Item eine eigene Tabelle erstellen, in der immer wieder der neue Wert eingetragen wird?

    -eine 'Wert' Tabelle in der zeitlich-ungeordnet die Werte der einzelnen Items zusammen mit deren IDs eingetragen werden?


    Oder gibt es noch eine dritte Möglichkeit, die ich nicht kenne?

    Mfg
    Satoru
     
  2. 28. Juni 2010
    AW: optimale Datenbankstruktur

    meine datenbank die ich für nen projekt brauchte ist ähnlich


    id [int - PRIM_KEY] | idsave [int] | item_wert [int] | registriert [bool] | Aktiv [Bool]
    ------------1-----------------1-------------------5----------------------1-----------------0
    ------------2-----------------1-------------------6----------------------1-----------------0
    ------------3-----------------1-------------------3----------------------1-----------------1
    ------------4-----------------4-------------------2----------------------0-----------------1


    Dann wählst du per SELECT immer das aktive aus, hast mit idsave auch noch ne eindeutige id damit du weisst, das sich alles auf den eintrag mit der PRIM_KEY id 1 bezieht und joa....

    hoffe es ist verständlich, die einträge 1 und 2 sind die alten, der dritte ist das neuste und das vierte n anderes item

    EDIT: du kannst aktiv weglassen... dafür nen "Erstelldatum" hinzufügen, dann kannst du dir alle in der reihenfolge der zeit ausgeben lassen für ne statisik und weisst automatscih dass das neuste dein aktuelles ist, brauchte aktiv nur weil ich in meinem projekt noch vor und zurück springen musste
     
  3. 28. Juni 2010
    AW: optimale Datenbankstruktur

    wichtig bei der tabellen struktur ist redundante Datenhaltung zu vermeiden.
    vor allem wenn du alte werte speichern möchtest.

    eine grundtabelle mit id item-name wäre sinnvoll.

    zusätzlich wo die veränderungen zu der id abgespeichert werden.
     
  4. 29. Juni 2010
    AW: optimale Datenbankstruktur

    alles was du brauchst sind drei felder in einer tabelle:

    id (auto_increment, primary key)
    item_name
    item_wert

    mehr nicht.

    jeder neue wert wird einfach abgespeichert. da brauchst du garnicht zu schauen ob dieser schon existiert oder nicht...

    wenn du die history der werte willst:

    SELECT * FROM ... WHERE item_name = "test" ORDER BY id ASC

    wenn du den letzen wert willst:

    SELECT * FROM ... WHERE item_name = "test" ORDER BY id DESC LIMIT 1
     
  5. 29. Juni 2010
    AW: optimale Datenbankstruktur

    oder du machst ein zusätzliches feld in dem du einfach ein array mit den geänderten werten abspeicherst!
     
  6. 29. Juni 2010
    AW: optimale Datenbankstruktur

    das ist aber dann noch nicht einmal 1NF (ok... kommt drauf an wie man es betrachtet)
     
  7. 29. Juni 2010
    AW: optimale Datenbankstruktur

    hm evtl wenn man daten mit serialize reinpumpt.. aber stimmt schon, ein wenig sollte man die NF achten wenn ein projekt nich ins chaos stürzen soll o:
     
  8. 30. Juni 2010
    AW: optimale Datenbankstruktur

    Super leute, vielen Dank! Mit eurer Hilfe habe ich jetzt eine gute Lösung gefunden!

    bws sind raus

    ~closed
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.