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?
quelle
Antworten:
Wenn Sie die meisten Attribute Ihrer Produkte im Voraus kennen, können Sie sie in den Tabellen für verschiedene Produkttypen fest codieren, z.
Sie können auch so etwas ausprobieren:
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:
Die Daten könnten folgendermaßen aussehen:
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.
quelle
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
quelle
eav
?