Baumstruktur und Tabellen

  • Hallo,

    sorry, ich hoffe, dass meine Frage hier richtig ist. Ich bin nämlich ein Newbie und möchte mich entschuldigen, falls ich da in einem falschen Thread was schreib.

    Ich beschäftige mich gerade mit Datenbanken und so. Dabei wollte ich so ein Kleid in einer Tabelle abbilden, doch weiß nicht, ob es richtig ist, nämlich:

    .) 1.Beispiel:
    Kleid
    | | |
    Grün Rot Blau
    | | |
    S S S
    M M M
    L L L

    müsste es in einer Tabelle so aussehen?:

    + Tabelle Kleid:
    Kleid|Attribut1|Attribut2

    + Tabelle Farbe Grün:
    Grün|S|M|L
    + Tabelle Farbe Rot:
    Rot|S|M|L
    + Tabelle Farbe Blau:
    Blau|S|M|L

    .) 2.Beispiel:
    Kleid
    | | |
    Grün S Rot S Blau S
    Grün M Rot M Blau M
    Grün L Rot L Blau L

    müsste es nun in einer Tabelle so aussehen?:

    + Tabelle Kleid:
    Kleid|Farbe|Größe
    Sonnenuntergang|Grün|S
    Sonnenuntergang|Grün|M
    Sonnenuntergang|Grün|L
    Sonnenuntergang|Rot|S
    Sonnenuntergang|Rot|M
    Sonnenuntergang|Rot|L
    Sonnenuntergang|Blau|S
    Sonnenuntergang|Blau|M
    Sonnenuntergang|Blau|L

    Vielen Dank im Voraus für Eure Gedult und Unterstützung :oops:
    Liebe Grüße

  • es hängt davon ab, was du am ende damit machen willst...
    richtig wäre die dritte normalform, also alle entitäten so auflösen, dass es nur noch 1:n beziehungen gibt.
    das macht aber in der praxis nicht immer sinn.

    abhängig von anzahl der gesamten datensätze und der späteren verwendung der datenbank reicht auch die von dir geschiclderte variante.


    tabelle kleider:

    kleid_id (autoinkrement, primary)
    kleidname
    kleidgröße
    kleidfarbe


    richtig wäre aber das auflösen der größen und dadurch die dritte normalform zu erreichen

    tabelle kleider:

    kleid_id (autoinkrement, primary)
    kleidname

    tabelle groessen
    groesse_id (autoinkrement, primary)
    bezeichner

    kleider_groessen
    kg_id (autoinkrement, primary) (nicht zwingend nötig, da eigentlich kleid_id und groessen_id den zusammmengesetzten primary ergeben sollten)
    kleid_id (primary)
    groesse_id (primary)
    anzahl (wäre hier sinnvoll zu verorten, ist aber nich zwingend notwendig)

    wenn jetzt noch ne artikel-nummer dazukäme, ist es abhängig davon, ob alle kleider eines namens dieselbe artikelnummer haben oder ob jedes kleid in einer größe eine nummer bekommt.

    dann würde im ersten fall die artikelnummer in kleider dabei sein können, im zweiten fall auch in der kleider_groessen

  • Hallo,

    danke für deine Hilfe. Ich verstehe es aber nicht so richtig. :oops:

    Außerdem was du hier aufgezeigt hast, entspricht jetzt welches Beispiel von mir?

    Was heißt "autoinkrement, primary"?

    Danke wie immer im Voraus.
    Liebe Grüße

    - - - Aktualisiert - - -

    Achja, gibt es gute empfehlenswerte (deutschsprachige) Bücher für sowas (Datenbanken, etc.)? Oder welche Themen wären noch relevant, wenn ich mich damit weiterbeschäftigen möchte?

    Aber bitte nur Bücher, welche wirklich gut für Newbies/Schülerinnen sind. Vielen Dank.

    Ich interessiere mich sehr für soetwas, aber ich tue mir extrem schwer damit. Möchte es aber verstehennn... :Dankeschoen:

    Liebe Grüße

    Einmal editiert, zuletzt von mel09 (24. September 2015 um 19:29)

  • genau genommen hab ich deine beiden beispiele eher so gestaltet, wie es in der db aussehen soll...
    richtig ist es so, dass du alle entitäten in einer eigenen tabelle abbildest.

    also kleid
    farbe
    größe

    1 kleid kann nur eine hauptfarbe haben
    1 kleid kann nur eine größe haben
    1 kleid kann nur eine artikelnummer haben

    x kleider haben aber x farben, x größen und x artikelnummern

    also haste da eine n zu m beziehung, die in einer merge-tabelle zusammengeflanscht werden muss, damit du wieder eine 1:n beziehung bekommst.

    also anhand deiner beispiele:
    das erste ist möglich, das zweite ist richtig

    beide funktionieren, aber in abhängigkeit deines projektes musste die passende/ ausreichende variante wählen.
    die vielen tabellen sind zukunftsicher, wenn du deinen krams mal erweitern willst

  • Hallo,

    bin das Wochenende bei meiner Oma am Land gewesen. Und jetzt nach meinen Hausübungen hab ich wieder ein bisschen Zeit für meine Datenbankthemen :p

    Vielen Dank für deine Hilfen!

    Nur leider glaube ich brauch ich da noch mehr Inputs. Ich versteh bis jetzt nur Bahnhof :confused:

    Kennst du vielleicht gute und leicht verständliche (deutschsprachige) Bücher, etc. bezüglich Datenbanken und Co.? Wenn es englischsprachig sind auch okay, solange diese verständlich sind. Aber auf Deutsch ist es mir doch lieber.

    Also wenn du mir diesbezüglich noch ein paar Tipps geben könntest?

    Danke wie immer im Voraus!
    Liebe Grüße