2016-10-21 3 views
0

Ich bin Anfänger in Datenbank-Design und Probleme mit dem Datenbank-Design für Groupon Website wie Groupon.com und das ist mein Diagramm von meiner Idee. Ich hoffe auf einige Hinweise aufWie kann ich diese Datenbank verbessern?

  1. Wie kann ich dieses EER-Diagramm verbessern?

  2. Gibt es irgendwelche häufigen Fehler, die ich vermeiden sollte?

  3. Bin ich auf dem richtigen Weg? Oder können Sie ein alternatives Designmuster vorschlagen, das ich noch berücksichtigen muss?

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Entschuldigung für mein schlechtes Englisch. Vielen Dank im Voraus!

contextdiagramEER diagram

+0

Siehe auch: [Fünf Fehler Einfache Datenbank-Design sollten Sie vermeiden] (https://www.simple-talk.com/sql/database-administration/five-simple--database-design -errors-you-move-avoid /) –

+0

Es spielt keine Rolle, wie schön und normalisierte Tabellen für die reale Anwendung sind, wenn Ihre Abfragen langsam arbeiten. Daher ist es besser zu analysieren, was Sie mit der Datenbank tun möchten, bevor Sie sie entwerfen. normalisieren einer db und weniger Daten darin ist gut, weil es hilft, Ihre db in RAM und eine gute Leistung zu bieten. Aber manchmal, weil nicht alle Teile einer Daten mit der gleichen Häufigkeit abgefragt werden, ist es besser, die Normalisierung zu vermeiden. Lesen Sie die Dokumentation, probieren Sie Ihr Design aus und sammeln Sie Ihre Erfahrungen, sofern Ihnen niemand eine Statistik für Ihre Daten sagt. – yvs

Antwort

0

In Bezug auf das Datenbankschema, das würde ich:

  1. ändert es, so dass die Reihenfolge ein FK zu Orderstatus hat. Auf diese Weise reduzieren Sie die Anzahl der OrderStatus-Datensätze in Ihrer Datenbank auf . Auf diese Weise haben Sie wenige mögliche Status ("In Bearbeitung", "Neu", etc ..) und Ihre Bestellung bezieht sich darauf. Genau wie du es mit Bezahlung getan hast. Wo ist die Bestellsumme?
  2. Ich würde die Adresse atomarer machen. Teilen Sie es in Land, Stadt, Straße, Postnummer. Es wird einfacher sein, die Lieferung so zu verarbeiten.
  3. Anstatt eine gekaufte Artikeltabelle zu erstellen, würde ich eine Produktbestellung erstellen, mit FK zum Produkt, FK zur Bestellung und mit der Anzahl der Artikel (siehe Viele zu viele Beziehungen). Auf diese Weise kann Ihre Bestellung viele verschiedene Artikel haben (Sie brauchen dort auch nicht productName).
  4. Sie haben mit Promotions einen ziemlich guten Job gemacht, aber meiner Meinung nach würde dies eine große Hilfe von der Programmseite erfordern. Sie müssten Ihre Artikelgesamtmenge und Bestellsumme manuell berechnen.

Ich hoffe, es hilft ein wenig. Wenn Sie Hilfe benötigen, fragen Sie im Kommentar.
Einige Lektüre für Sie: Database normalization

Verwandte Themen