Nothing close enough? Start from a blank erd → Describe it in one paragraph.
How to use an erd template.
- 01User- und Product-Entitäten definieren
Beginne mit User (user_id, email, name, address) und Product (product_id, name, description, price, stock). Diese beiden Entitäten bilden das Zentrum jedes E-Commerce-Schemas.
- 02Beziehung zwischen Order und OrderItems modellieren
Erstelle Order mit einer Verknüpfung zu User (ein User, viele Bestellungen) und OrderItems als Verknüpfungstabelle zwischen Order und Product. OrderItems speichert quantity und unit_price zum Zeitpunkt des Kaufs.
- 03Cart und CartItems ergänzen
Modelliere Cart als temporäre Bestellentität, die mit User verknüpft ist, und verknüpfe Cart und Product über CartItems. Die Umwandlung des Warenkorbs in eine Bestellung ist ein wichtiger Workflow, den du abbilden solltest.
- 04Payment und Versand einbeziehen
Ergänze Payment mit einer Verknüpfung zu Order (payment_method, status, amount, transaction_id) sowie Shipping (carrier, tracking_number, estimated_delivery, status), um den gesamten Transaktionslebenszyklus abzubilden.
- 05Bewertungen und Rabatte ergänzen
Füge eine Review-Entität (user_id FK, product_id FK, rating, text, date) sowie eine Discount- oder Coupon-Entität (code, discount_type, amount, expiry) hinzu, um eine vollständige Commerce-Plattform zu modellieren.
Questions about erd templates
Welche zentralen Entitäten gibt es in einer E-Commerce-Datenbank?
Zentrale Entitäten sind User, Product, Order, OrderItems (Verknüpfungstabelle), Cart, CartItems, Payment und ShippingAddress. Erweiterte Entitäten ergänzen ProductVariant, Review, Category, Discount und Inventory.
Wie modelliere ich Produktvarianten (Größe, Farbe) in einem ER-Diagramm?
Erstelle eine ProductVariant-Entität, die mit Product verknüpft ist und für jede Variantendimension Attribute enthält (size, color, SKU, stock_qty, price_modifier). OrderItems und CartItems verweisen anschließend auf ProductVariant statt direkt auf Product.
Sollten Cart und Order separate Entitäten sein?
Für die meisten Designs: ja. Cart ist vergänglich (kann aufgegeben, geändert oder abgelaufen sein), während Order einen dauerhaften Transaktionsdatensatz darstellt. Durch die Trennung lassen sich Abbruchraten von Warenkörben leichter analysieren und die Integrität der Bestellhistorie sicherstellen.
Wie verwalte ich mehrere Lieferadressen pro User?
Erstelle eine separate Address-Entität, die mit User verknüpft ist (ein User, mehrere Adressen). Order verweist dann über einen Fremdschlüssel shipping_address_id auf Address. So bleibt die Adresse zum Kaufzeitpunkt erhalten, auch wenn der User sein Profil später aktualisiert.
Wie modelliere ich Rabattcodes in einem E-Commerce-Schema?
Erstelle eine Discount-Entität (code, type: percentage/fixed, value, min_order_amount, expiry, max_uses). Verknüpfe sie über einen applied_discount_id-Fremdschlüssel mit Order. Dadurch wird für jede Bestellung festgehalten, welcher Rabatt beim Checkout angewendet wurde.