Entwerfen einer E-Commerce-Datenbank - MySQL

8

Ich mache ein E-Commerce-Projekt und bin verwirrt über das Datenbankdesign für die Speicherung von Produkten. Es gibt 3 Möglichkeiten, über die ich spekuliert habe, dass die Datenbank erstellt werden kann:

1. Es kann separate Tabellen für jede Produktkategorie geben.

%Vor%

2. Gruppiere alle Produkte in einer Tabelle und erlaube, dass einige Werte null sind

%Vor%

3. Gruppieren Sie ähnliche Spaltenfelder in einer Tabelle namens products, und stellen Sie separate Tabellen für bestimmte Daten bereit.

%Vor%

Ich würde wirklich die Erleuchtung zu schätzen wissen, danke

    
a7omiton 31.01.2013, 12:22
quelle

2 Antworten

8

Ich gehe davon aus, dass ein Produkt zu vielen Kategorien gehören kann und eine Kategorie (offensichtlich) viele Produkte enthält. Diese Beziehung wird als Viele-zu-Viele-Beziehung bezeichnet.

In diesem Fall hätten Sie drei Tabellen: categories , products und categories_products . Die ersten beiden Tabellen sind selbsterklärend. Die dritte Tabelle speichert eine Beziehung zwischen den beiden mit zwei Fremdschlüsseln. Die Tabellen würden so aussehen:

%Vor%

Offensichtlich sind dies die Tabellenschemas in ihrer einfachsten Form. Sie müssen Ihre zusätzlichen Spalten zur Tabelle categories und products hinzufügen - ich habe nur die Spalten einbezogen, die für die Beziehung relevant sind.

BEARBEITEN: Ich habe auch eine parent_id -Spalte zur Tabelle categories für Verschachtelungskategorien hinzugefügt. Es ist im Allgemeinen eine schlechte Idee, eine separate sub_categories -Tabelle zu erstellen - was passiert, wenn Sie eine Unterkategorie zu einer Kategorie auf oberster Ebene machen wollen? Oder umgekehrt? Du bist aus Mangel an einem besseren Ausdruck buggered.

    
Martin Bean 31.01.2013, 12:31
quelle
5

Ich denke, es hängt von den Produkten ab, die Methode 1 oder 2 zu verwenden. Ich würde niemals Methode 3 verwenden.

Wenn Ihre Produkte komplett anders sind wie Bücher, Parfüms und Kleidung, würde ich Methode 1 verwenden

Eine Nebenbemerkung: Warum sollten Sie zwei Tabellen für Ihre Kategorien verwenden? Verwenden Sie eine Tabelle und fügen Sie eine Spalte Parent_ID hinzu, damit Sie in Zukunft unbegrenzte Unterkategorien verwenden können.

zum Beispiel:

%Vor%
  • Bücher, Kleidung und Parfüme haben keine Eltern (das sind die wichtigsten Kategorien).
  • Science-Fiction und Komödie ist eine Unterkategorie von Bücher (ID 1).
  • Jeans, Pullover und Unterwäsche ist eine Unterkategorie von Kleidung (ID 2).
  • Long Sleeve ist eine Unterkategorie von Sweater (ID 7).
  • Roses ist eine Unterkategorie von Parfums (ID 3).
AgeDeO 31.01.2013 12:31
quelle