2017-10-18 1 views
1

Ich habe ein Projekt, wo ich eine Website für Kleinanzeigen erstellen. Benutzer auf der Website fügen Artikel zum Verkauf hinzu und geben Spezifikationen für sie an.MySQL-Datenbank: wie speichern unterschiedliche Größe des Produkts?

Aber das Problem ist: Auf dieser Website kann ein einzelnes Produkt als verschiedene Produkte betrachtet werden.

  • Größe: S
  • Ski (Größe: 150 cm, so ein binärer Wert)

Was ist die beste Art und Weise zu entwerfen Tabelle Zum Beispiel kann ich T-Shirt mit zwei Größen verkaufen um diese Attribute und Produkte effektiv zu halten?

Antwort

1

Sie sollten eine grundlegende Tabelle mit dem Produkt haben und dann sollten Sie die grundlegenden Details wie den Namen des Produkts und etwas, das gleich über, z. B. Typ ist, ist es ein T-Shirt usw. Und Sie sollten ein Attribut haben Tabelle, die die Produkt-ID und die Attribute enthält. Sie müssen sich mit dieser Produkt-ID beziehen.

Etwas wie folgt aus:

Die SQL für das gleiche in MySQL ist wie folgt:

CREATE TABLE `Products` (
    `Product_ID` bigint NOT NULL AUTO_INCREMENT, 
    `Product_Name` varchar NOT NULL, 
    `Product_Type` varchar NOT NULL, 
    `TimeStamp` TIMESTAMP NOT NULL, 
    PRIMARY KEY (`Product_ID`) 
); 

CREATE TABLE `Product_Attributes` (
    `Product_SKU` bigint NOT NULL AUTO_INCREMENT, 
    `Product_ID` bigint NOT NULL, 
    `Product_Size` bigint NOT NULL, 
    `Product_Price` bigint NOT NULL, 
    PRIMARY KEY (`Product_SKU`) 
); 

ALTER TABLE `Product_Attributes` ADD CONSTRAINT `Product_Attributes_FK` 
FOREIGN KEY (`Product_ID`) 
REFERENCES `Products`(`Product_ID`); 

Hier Product_SKU ist der Stock Keeping Unit, die das reale Produkt-ID ist für jedes Produkt - T-Shirt mit Größe S und T-Shirt mit Größe 150 cm. Und die Product_ID ist die Eltern ID des Produktes - T-Shirt.

Produkte

  • T-Shirt - Prod ID - 1
  • Jeans - Prod ID - 2

Produkt SKUsMenschen diese

kaufen
  • -T-Shirt (Größe S) - Artikelnummer - 1betrachten kann wie 2,1
  • -T-Shirt (Größe 150cm) - SKU - 2wie 2.2
  • betrachten kann

Ich hoffe, das ist klar und deutlich.

+0

Ich verstehe nicht – Strawberry

+0

@Strawberry Welcher Teil verstehen Sie nicht? – Soolie

+0

Der Teil darüber, wie dies das Problem löst – Strawberry

0

Meinst du fact/dimension- oder datentyp?

Sie können die verschiedenen Größen einfach als varchar speichern. Aber ich würde Ihnen empfehlen, eine Fakt/Dimensionsstruktur zu haben, in der Sie alle Details wie Größen usw. in separaten Tabellen speichern, auf die Sie verweisen können.

Verwandte Themen