Carmen: Datenbank - Tabellen

Hallo,

vielleicht könnt ihr mir ein Tipp zum Aufbau der Datenbank geben. Ich möchte auf einer Projektseite einige selbsterstelle Schuhe präsentieren, die wir in einer AG mit behinderten Menschen hergestellt haben.

  • Es gibt Damen und Herren Schuhe.
  • Die Herren haben die Größen 41 - 45 und die Damen die Größen 37 – 41.
  • Die Damen Schuhe können in den Farben Schwarz, Braun und Gelb, die Herrenschuhe in den Farben Blau, Lila, Grün, Pink und Türkis gekauft werden.

Der Grundaufbau der Seite sollte immer gleich sein:

  • Titel
  • Beschreibung
  • Bild
  • Farben
  • Größen

Um die Seite etwas voller wirken zu lassen dachte ich, dass ich jedes Paar separat in der Datenbank anlege. Was mir noch ein wenig Kopfzerbrechen bereitet ist die dazugehörigen Größen, wie würdet ihr dieses umsetzten?

Die Auswahl der Größe sollte auf der Seite über ein Dropdown Menü gesteuert werden. Sollte sich ein Teilnehmer dazu entschließen die Texte auf Englisch zu übersetzten zu wollen, würde eine weitere Sprache irgendwann hinzukommen, sollte dieses bereits jetzt für die Datenbank wichtig sein. Derzeit habe ich nur die deutschen Texte vorliegen.

  1. Hallo,

    OK, eine Idee habe ich. Ich speichere die Größen mit der jeweils dazugehörigen Schuh-ID in einer separaten Tabelle. Somit bin ich flexibel.

  2. Freunde Dich mal mit dem Begriff SKU an: Stock Keeping Unit

    Farben und Größen sind dann Variationen. Daraus ergibt sich das DB-Design.

    1. Tach!

      Freunde Dich mal mit dem Begriff SKU an: Stock Keeping Unit

      Farben und Größen sind dann Variationen. Daraus ergibt sich das DB-Design.

      Nun, zumindest bei Magento ist das anders. Da ist jede Variante ein eigener Artikel mit eigener SKU. Damit der Kunde aber nur einen Artikel in mehreren Varianten sieht, gibt es den konfigurierbaren Artikel. Das ist ein übergeordneter Artikel, dem die einzelnen Varianten-Artikel zugewiesen sind. letztere sind als "nicht individuell sichtbar" gekennzeichnet, damit sie nicht einzeln auftauchen.

      Auch früher, als man noch mit Totholz-Katalogen bestellte, war es üblich, dass die Varianten eigene Artikelnummern hatten, wenn meist auch nur, dass sie sich in einem Anhängsel unterschieden. Das ist also keine Magento-individuelle Eigenheit.

      dedlfix.

  3. Vor einigen Jahren habe ich eine Tabelle für Handies gemacht. Diese Produktgruppe zeichnet sich dadurch aus, dass sie unbekannte Eigenschaften hat. Zum Beispiel Flugfähigkeit und Geruchsfernsehen, zur Zeit noch unbekannt.

    Da hat man also drei Tabellen: 'produkte', 'produkt-Eigenschaften' und 'eigenschaften_zu_produkte'.

    War als Suchfunktion hervorragend. Ich konnte die mir wichtigen Eigenschaften anklicken und dann wurden die Handies gelistet, die infrage kommen.

    Bekannte Eigenschaften von Schuhen wären die Größen und die Farben. Vielleicht kommt später was hinzu, etwas das Material der Laufsohle.

    Dies Konzept könnte sogar erweitert werden, indem in der 'eigenschaften_zu_produkte' der Warenbestand geführt wird.

    Linuchs

    1. Dies Konzept könnte sogar erweitert werden, indem in der 'eigenschaften_zu_produkte' der Warenbestand geführt wird.

      Nee, das war ein unüberlegter Schnellschuss. Wenn ein Handy "variable Klingeltöne" und "Farbdisplay" hat, hat man ja zwei Datensätze, aber nur einen Bestand.

      Linuchs

    2. Tach!

      Vor einigen Jahren habe ich eine Tabelle für Handies gemacht. Diese Produktgruppe zeichnet sich dadurch aus, dass sie unbekannte Eigenschaften hat. Zum Beispiel Flugfähigkeit und Geruchsfernsehen, zur Zeit noch unbekannt.

      Am Ende ist das aber immer noch ein Produkt, das mit diesen Eigenschaften daherkommt. Man kann sich als Kunde nicht aussuchen, welche Features man haben möchte, sondern kann nur ein komplettes Produkt wählen. Etwas anders ist die Sachlage, wenn man zwischen Ausstattungsmerkmalen wählen kann, also zum Beispiel 16 oder 32 GB Speicher. Das sieht für den Kunden wie ein Produkt in mehreren Varianten aus. Aus der Sicht des Verkäufers sind es aber verschiedene Artikel. Der greift einmal ins Regal und packt die fertige Variante - sprich: den eigenständigen Artikel - ins Paket.

      Da hat man also drei Tabellen: 'produkte', 'produkt-Eigenschaften' und 'eigenschaften_zu_produkte'.

      Kann man so machen. Das ist im Prinzip das EAV-Muster (Entity-Attribute-Value).

      Bekannte Eigenschaften von Schuhen wären die Größen und die Farben. Vielleicht kommt später was hinzu, etwas das Material der Laufsohle.

      Größe und Farbe sind Varianten, die eigenständige Artikel ergeben. Materialien hingegen sind lediglich beschreibende Eigenschaften eines Artikels.

      Dies Konzept könnte sogar erweitert werden, indem in der 'eigenschaften_zu_produkte' der Warenbestand geführt wird.

      Das wäre teilweise unsinnig, solange es sich um Varianten definierende Eigenschaften der Artikel handelt. Die beiden Mobiltelefon-Varianten mit 16 und 32 GB Speicher bilden eigene Warenbestände. Beide haben aber ein buntes Display und Stiftbedienung. Diese Eigenschaften sind für den Bestand irrelevant.

      dedlfix.

      1. Mahlzeit,

        Am Ende ist das aber immer noch ein Produkt, das mit diesen Eigenschaften daherkommt. Man kann sich als Kunde nicht aussuchen, welche Features man haben möchte, sondern kann nur ein komplettes Produkt wählen.

        ja, in der Regel ist das so, aber nicht immer. Gegenbeispiele wären etwa PCs, die nach Kundenwunsch zusammengestellt und montiert werden, oder Neuwagen, bei denen der Kunde die gewünschten Extras nach Liste frei auswählen kann.

        Etwas anders ist die Sachlage, wenn man zwischen Ausstattungsmerkmalen wählen kann, also zum Beispiel 16 oder 32 GB Speicher. Das sieht für den Kunden wie ein Produkt in mehreren Varianten aus. Aus der Sicht des Verkäufers sind es aber verschiedene Artikel. Der greift einmal ins Regal und packt die fertige Variante - sprich: den eigenständigen Artikel - ins Paket.

        Wenn nun aber die Eigenschaft heißt "mit Schutzhülle in Schwarz, Rot oder Silber", dann sind es für den Verkäufer zwei Artikel, die er auch separat aus dem Regal holt und im Moment des Verkaufs zu einem Bundle komkbiniert.

        Man hat also, wenn man mal die Terminologie der Software-Paketverwaltung bemühen will, ein Meta-Produkt, das lediglich eine Kombination zweier anderer Produkte darstellt (die auch einzeln verkauft werden können).
        Wie bildet man das dann am besten ab?

        Kann man so machen. Das ist im Prinzip das EAV-Muster (Entity-Attribute-Value).

        Erste Allgemeine Verunsicherung. ;-)

        Größe und Farbe sind Varianten, die eigenständige Artikel ergeben. Materialien hingegen sind lediglich beschreibende Eigenschaften eines Artikels.

        Nicht unbedingt. Wie sieht das aus bei einer Jacke, die bei gleichem Schnitt und Aussehen wahlweise in Schwarz oder Dunkelbraun, in verschiedenen Größen und in zwei Materialien angeboten wird - etwa Echtleder und Imitat? Das würde ich durchaus als Variante des Produkts betrachten.
        Das Kriterium ist also nicht, ob es "nur eine beschreibende Eigenschaft" ist, sondern ob es Varianten gibt, die sich in dieser Eigenschaft unterscheiden.

        Dies Konzept könnte sogar erweitert werden, indem in der 'eigenschaften_zu_produkte' der Warenbestand geführt wird.

        Das wäre teilweise unsinnig, solange es sich um Varianten definierende Eigenschaften der Artikel handelt. Die beiden Mobiltelefon-Varianten mit 16 und 32 GB Speicher bilden eigene Warenbestände. Beide haben aber ein buntes Display und Stiftbedienung. Diese Eigenschaften sind für den Bestand irrelevant.

        Das stimmt natürlich. Die wären nur relevant, wenn es Varianten mit verschiedenen Displays gäbe, die man unterscheiden muss.

        So long,
         Martin

        --
        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
        1. Tach!

          Am Ende ist das aber immer noch ein Produkt, das mit diesen Eigenschaften daherkommt. Man kann sich als Kunde nicht aussuchen, welche Features man haben möchte, sondern kann nur ein komplettes Produkt wählen.

          ja, in der Regel ist das so, aber nicht immer. Gegenbeispiele wären etwa PCs, die nach Kundenwunsch zusammengestellt und montiert werden, oder Neuwagen, bei denen der Kunde die gewünschten Extras nach Liste frei auswählen kann.

          Beim PC wäre das ein Bündel, um den Magento-Sprachgebrauch zu nehmen. Die einzelnen Komponenten sind dabei jeweils eigenständige Artikel. Individuelle Neuwagen sind Maßanfertigungen, die werden wohl eher nicht über handelsübliche Shopsoftware zusammengestellt. Aber es läuft da vermutlich auf ein Bündel hinaus.

          Wenn nun aber die Eigenschaft heißt "mit Schutzhülle in Schwarz, Rot oder Silber", dann sind es für den Verkäufer zwei Artikel, die er auch separat aus dem Regal holt und im Moment des Verkaufs zu einem Bundle komkbiniert.

          Jein, es sind vier Artikel. Jede Farbe bildet eine Variante und damit sind es aus der Verkäufer-/Lagerhaltungssicht eigenständige Artikel.

          Man hat also, wenn man mal die Terminologie der Software-Paketverwaltung bemühen will, ein Meta-Produkt, das lediglich eine Kombination zweier anderer Produkte darstellt (die auch einzeln verkauft werden können).
          Wie bildet man das dann am besten ab?

          Man kann sich beispielsweise namhafte Shopsoftware anschauen, wie die das lösen. In dem Fall Bündel, wie du schon gesagt hast.

          Größe und Farbe sind Varianten, die eigenständige Artikel ergeben. Materialien hingegen sind lediglich beschreibende Eigenschaften eines Artikels.

          Nicht unbedingt.

          Ja. Ich deutete das Beispiel von Linuchs so, dass er lediglich beschreibende Eigenschaften anführte. Mit Eigenschaften, die wechselbar sind, entstehen eigene Varianten.

          Wie sieht das aus bei einer Jacke, die bei gleichem Schnitt und Aussehen wahlweise in Schwarz oder Dunkelbraun, in verschiedenen Größen und in zwei Materialien angeboten wird - etwa Echtleder und Imitat? Das würde ich durchaus als Variante des Produkts betrachten.

          Genau. Jeweils eigene Artikel im Hintergrund, im Shop aber als konfigurierbarer Artikel nur einmal zu sehen.

          Das Kriterium ist also nicht, ob es "nur eine beschreibende Eigenschaft" ist, sondern ob es Varianten gibt, die sich in dieser Eigenschaft unterscheiden.

          Ja, das sind dann Eigenschaften, die nicht mehr "nur beschreiben".

          Dies Konzept könnte sogar erweitert werden, indem in der 'eigenschaften_zu_produkte' der Warenbestand geführt wird.

          Das wäre teilweise unsinnig, solange es sich um Varianten definierende Eigenschaften der Artikel handelt. Die beiden Mobiltelefon-Varianten mit 16 und 32 GB Speicher bilden eigene Warenbestände. Beide haben aber ein buntes Display und Stiftbedienung. Diese Eigenschaften sind für den Bestand irrelevant.

          Im ersten Satz fehlte noch ein "nicht": Das wäre teilweise unsinnig, solange es sich nicht um Varianten definierende Eigenschaften der Artikel handelt.

          dedlfix.

          1. Hallo,

            ja, in der Regel ist das so, aber nicht immer. Gegenbeispiele wären etwa PCs, die nach Kundenwunsch zusammengestellt und montiert werden, oder Neuwagen, bei denen der Kunde die gewünschten Extras nach Liste frei auswählen kann.

            Beim PC wäre das ein Bündel, um den Magento-Sprachgebrauch zu nehmen. Die einzelnen Komponenten sind dabei jeweils eigenständige Artikel. Individuelle Neuwagen sind Maßanfertigungen

            ich wäre bei Autos nicht auf den Begriff Maßanfertigung gekommen, aber das trifft's eigentlich recht gut.

            die werden wohl eher nicht über handelsübliche Shopsoftware zusammengestellt.

            Handelsüblich wohl eher nicht, da wird der Autohersteller wohl eher für ihn maßgeschneiderte (sic!) Software benutzen.

            Aber es läuft da vermutlich auf ein Bündel hinaus.

            Bestehend aus einem festen Basisprodukt und n optionalen Add-Ons.

            Wenn nun aber die Eigenschaft heißt "mit Schutzhülle in Schwarz, Rot oder Silber", dann sind es für den Verkäufer zwei Artikel, die er auch separat aus dem Regal holt und im Moment des Verkaufs zu einem Bundle komkbiniert.

            Jein, es sind vier Artikel. Jede Farbe bildet eine Variante und damit sind es aus der Verkäufer-/Lagerhaltungssicht eigenständige Artikel.

            Sorry, klar. Ich meinte, es sind zwei, die über den Ladentisch gehen und in dem Moment rechnungstechnisch zu einem verschmelzen. Vom Standpunkt der Lagerhaltung sind es natürlich vier.

            So long,
             Martin

            --
            Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
            - Douglas Adams, The Hitchhiker's Guide To The Galaxy
      2. Am Ende ist das aber immer noch ein Produkt, das mit diesen Eigenschaften daherkommt. Man kann sich als Kunde nicht aussuchen, welche Features man haben möchte, sondern kann nur ein komplettes Produkt wählen.

        Ja. Aber ich finde es ganz normal, dass man nach Eigenschaften eines kompletten Produktes sucht. Wenn ich die Schuhgröße 42 habe und weisse Slipper suche, können die schwarzen Schnürschuhe in Größe 45 gerne ausgeblendet werden.

        Wenn ich so suchen kann, muss das in der Datenbank vorbereitet sein. Das war die Frage.

        1. Tach!

          Am Ende ist das aber immer noch ein Produkt, das mit diesen Eigenschaften daherkommt. Man kann sich als Kunde nicht aussuchen, welche Features man haben möchte, sondern kann nur ein komplettes Produkt wählen.

          Ja. Aber ich finde es ganz normal, dass man nach Eigenschaften eines kompletten Produktes sucht. Wenn ich die Schuhgröße 42 habe und weisse Slipper suche, können die schwarzen Schnürschuhe in Größe 45 gerne ausgeblendet werden.

          Die gesuchte Variante kann ja vorausgewählt sein. Es ist aus Verkaufssicht aber sinnvoll, dass nicht nur der einzelne Artikel, sondern sämtliche seiner Varianten gelistet werden. Das passiert am besten in der Form, dass der Artikel nur einmal zu sehen ist und die Varianten dann über Select-Felder oder ähnliches durchgeschaltet werden können.

          Die schwarzen Schnürschuhe werden ebenfalls angezeigt, aber als Zusatz unten drunter oder am rechten Rand, als so genannter Cross-Sell. Wenn es von den weißen noch bessere Ausführungen gibt, die aber eigenständige Produkte darstellen, dann werden die als Upsell präsentiert. Das wären aus derselben Produktreihe bessere Modelle.

          Mit Technik ist das vielleicht anschaulicher. Der Kunde sieht ein iPod Nano. Ein Upsell wäre der iPod Touch - eigenständiges Produkt, aber selbe Produktfamilie. Ein Cross-Sell wären Produkte anderer Hersteller - natürlich teurere, sonst verliert man durch solch eine Empfehlung Umsatz.

          Weitere Produkteinblendungen können präsentiert sein als "Kunden kauften auch" oder Zubehör oder "Passt gut zu" oder hastenichgesehen.

          Wenn ich so suchen kann, muss das in der Datenbank vorbereitet sein. Das war die Frage.

          Ja klar, bei Magento zum Beispiel sind sämtliche Eigenschaften auf dieselbe Art und Weise abgelegt: nach EAV-Muster. Es ist jedenfalls nicht so, dass variantendefinierende Eigenschaften direkt im Produktdatensatz oder anderswo abgelegt sind. Bei der Vielzahl unterschiedlicher Produkte, die so ein Shop verkaufen kann, wäre das nicht besonders sinnvoll. Die Gruppierungen, was zusammengehört und welche Eigenschaften die Gruppierbedingungen sind, werden extra verwaltet.

          dedlfix.

          1. Hallo,

            Ein Cross-Sell wären Produkte anderer Hersteller - natürlich teurere, sonst verliert man durch solch eine Empfehlung Umsatz.

            oder man gewinnt - nämlich wenn der Kunde feststellt, dass er ein ähnliches Produkt auch preiswerter bekommt und sich dann doch zum Kauf entscheidet, während ihn der höhere Preis des ursprünglichen Produkts vergrault hätte.

            Ob so eine Strategie in einem Online-Shop aufgeht, weiß ich nicht. Aber in einem Laden, wo ich mit einem Menschen aus Fleisch und Blut spreche, habe ich eine solche Empfehlung schon öfter bekommen ("In Ihrem Fall könnte man auch ...") und empfinde das als erstklassige Werbung für den Laden.

            So long,
             Martin

            --
            Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
            - Douglas Adams, The Hitchhiker's Guide To The Galaxy
            1. Tach!

              Ob so eine Strategie in einem Online-Shop aufgeht, weiß ich nicht. Aber in einem Laden, wo ich mit einem Menschen aus Fleisch und Blut spreche, habe ich eine solche Empfehlung schon öfter bekommen ("In Ihrem Fall könnte man auch ...") und empfinde das als erstklassige Werbung für den Laden.

              Im Laden kann der Verkäufer auf den Gemütszustand, Körperhaltung und anderes Gebahren des Käufers berücksichtigen und ihn so vielleicht doch noch rumkriegen und vor allem gezielter die Wünsche erfragen und darauf eingehen. Solange im Online-Shop kein Kamera-, Mikrofon- und Assistenten-Zwang herrscht, kann das die Shopsoftware nicht. Die kann nur Statistiken Daten heranziehen.

              dedlfix.

    3. Da hat man also drei Tabellen: 'produkte', 'produkt-Eigenschaften' und 'eigenschaften_zu_produkte'.

      Warum so kompliziert? Eine Tabelle mit 3 Spalten tuts auch.