Datenbankdesign für eine E-Commerce-Website

7

Ich bin neu im Datenbankdesign. Ich entwerfe eine Datenbank für eine E-Commerce-Website. Es müssen viele Produkte aktualisiert werden. Beim Entwerfen für eine Produktspezifikationstabelle verstehe ich jedoch nicht, ob ich alle Spezifikationen in einer Tabelle angeben oder andere verwenden muss Tabellen für verschiedene Produkte?

Betrachten Sie beispielsweise die Produkte Mobil und Buch, von denen jedes eindeutige Spezifikationen aufweist (wie Farbe, Größe, Kosten, Modell für Mobiltelefon und Titel, ISBN, Autor, Kosten, Erscheinungsjahr usw. für Buch), wenn es nur weniger ist Anzahl der Produkte dann ist es mir möglich zu entwerfen, aber wenn es Tausende von Produkten gibt, dauert es viel Zeit.

Kann mir jemand sagen, wie ich meine Datenbank entwerfen soll, um diese Situation zu bewältigen?

Rathish
quelle

Antworten:

5

Wenn Sie die meisten Attribute Ihrer Produkte im Voraus kennen, können Sie sie in den Tabellen für verschiedene Produkttypen fest codieren, z.

Bücher
-----
  Ich würde
  Preis
  Titel
  Autor
  isbn
  usw....

Mobilgerät
-------------
  Ich würde
  Preis
  Größe
  Farbe
  Modell-
  usw...

Sie können auch so etwas ausprobieren:

base_product
------------
  Ich würde
  Grundpreis
  Produktart

book_product_attributes
-----------------------
  base_product_id (FK zu base_product)
  Titel
  Autor

mobile_dev_product_attributes
-----------------------------
  base_product_id (FK zu base_product)
  Modell-
  Farbe

Auf diese Weise können Sie Ihre allgemeinen Attribute in einer Basisprodukttabelle gruppieren und bei Bedarf spezifischere Attribute in anderen Tabellen speichern.

Dies funktioniert, wenn Ihre Produkttypen größtenteils statisch sind. Wenn Sie jedoch keine Ahnung haben, welche Produkttypen oder Attribute Sie in Zukunft benötigen, funktioniert das auf Entitätsattributwerten basierende System möglicherweise besser. Die Idee hinter diesem Modell ist, dass Sie eine Tabelle für die verschiedenen Attribute haben, eine Tabelle für die verschiedenen Entitäten in Ihrem System und eine Tabelle für die Attributwerte, die eine Entität hat. Beispiel:

Entitäten
--------
  Ich würde

Attribute
----------
  Ich würde
  Name

Werte
------ ------.
  Ich würde
  entity_id
  attribute_id
  Wert

Die Daten könnten folgendermaßen aussehen:

Entitäten
ICH WÜRDE
----
  1

Attribute
ID | Name   
----------
1 | Titel
2 | Autor


Werte
ID | attribute_id | entity_id | Wert
-------------------------------------------------- -------
1 | 1 | 1 | "Große Erwartungen"
2 | 2 | 1 | "Charles Dickens"

Diese Daten beschreiben sehr kurz ein Produkt, das zwei Attribute aufweist: Titel und Autor mit dem Wert "Great Expectations" bzw. "Charles Dickens".

Beachten Sie, dass die Verwendung einer EAV-Datenbank Abfragen sehr umständlich machen kann. Mit genügend Daten und dem falschen Modelldesign können auch Leistungsprobleme auftreten. Das Beispiel, das ich gegeben habe, war sehr einfach, aber realistischere Designs sind in der Regel komplizierter. Es kann einige Zeit dauern, bis diese Art von Datenbank korrekt ist, und es ist nicht immer die beste Lösung.

FrustratedWithFormsDesigner
quelle
Hallo, danke für deine Zeit, da ich neu bei DBA bin, kann ich etwas Verständnis aus deinen Zeilen ziehen ... Entschuldigung für mein Englisch.
Rathish
2

Ich werde Ihnen die Designdetails basierend auf meiner Erfahrung zur Verfügung stellen.

Analyseteil .... wir sprechen über Produkte und deren Spezifikationen. Die Produktentität enthält alle Produktinformationen wie Auto, Handy, Buch usw. Die Spezifikationsentität enthält alle Spezifikationen wie Farbe, Größe, Modell, Kosten, Titel usw. Hier enthält jedes Produkt viele Spezifikationen und jede Spezifikation gehört zu einem oder mehreren Produkten. Es gibt eine viele zu viele Beziehung zwischen den Entitäten Produkten und ihren Spezifikationen. Auf der Ebene der physischen Datenbank finden Sie drei grundlegende Tabellen, nämlich .. PRODUKT, SPEZIFIKATION, PRODUKT_SPEZIFIKATION ................ ..................

PRODUKT -> Produkt-ID (PK), Produktname, Beschreibung

SPEZIFIKATION -> Spezifikations-ID (PK), Spezifikationsname, Beschreibung

PRODUCT_SPECIFICATION ---> Produkt-ID (PK), Spezifikations-ID (PK), prod_spec_Value

Wir können dieses Design basierend auf den Anforderungen erweitern.

Grüße, Bharath

Bharath
quelle
Schlagen Sie nicht vor eav?
Baby in der Datenbank