CodeGym /Kurse /SQL SELF /Marketplace Database Architecture

Marketplace Database Architecture

SQL SELF
Level 61 , Lektion 0
Verfügbar

Da ihr jetzt schon alles wisst und könnt, ist es Zeit, euer Wissen mal an einem echten Projekt auszuprobieren. Normalerweise werden Datenbanken von realen Projekten so eingeteilt:

  • kleine – bis zu 100 Tabellen
  • mittlere – 100-1000 Tabellen
  • große – ab 1000 Tabellen.

Ohne Erfahrung kann man sich schwer vorstellen, wozu man 100+ Tabellen braucht. Deshalb geb ich euch heute mal die Chance dazu :)

Ich geb euch eine realistische relationale Datenbank für eine E-Commerce-Plattform (Marketplace). Die Datenbank ist in Schemas aufgeteilt, jedes davon deckt einen bestimmten Fachbereich ab: Nutzer, Produkte, Bestellungen, Logistik, Marketing, Support usw.

Das Projekt besteht aus 109 Tabellen, verteilt auf 11 Schemas. Jede Tabelle hat Foreign Keys und ist vorbereitet für Erweiterungen mit Nachschlage- und Systemtabellen.

Datenbankstruktur

Schema user — Nutzer und Aktivität

Das Schema user enthält Tabellen für Accounts, Profile, Kontaktinfos, Login-Logs, Bewertungen und soziale Verbindungen.

Beispiel-Tabellen:

  • account — Registrierungsdaten
  • profile — persönliche Infos
  • review, comment — Bewertungen und Kommentare

Schema product — Produkte und Katalog

Das Schema product enthält Produktbeschreibungen, Varianten, Attribute, Bilder, Status und Änderungshistorie.

Beispiel-Tabellen:

  • product, variant — Produkte und Modifikationen
  • attribute, tag — Eigenschaften und Tags
  • supplier, composition — Hersteller und Zusammensetzung

Schema order — Bestellungen und Warenkörbe

Enthält Mechanismen für Bestellabwicklung und -verfolgung, Status, Rückgaben und Zahlungen.

Beispiel-Tabellen:

  • order, order_item
  • status_log, return, cancellation
  • invoice, discount

Schema logistics — Lager, Lieferung, Routen

Verwaltung von Lagerbeständen, Bewegungen, Lieferungen und Routen.

Beispiel-Tabellen:

  • warehouse, inventory, transfer
  • shipping_method, package
  • driver, carrier, route

Schema payment — Zahlungen und Transaktionen

Speichert Infos zu Zahlungssystemen, Transaktionen, Wallets und Rückerstattungen.

Beispiel-Tabellen:

  • payment, transaction, refund
  • wallet, wallet_transaction
  • gateway, method

Schema marketing — Aktionen und Werbung

Enthält Tabellen für Promo-Codes, Banner, Referral-Programme und hervorgehobene Produkte.

Beispiel-Tabellen:

  • campaign, promo_code, discount
  • referral_program, featured_product

Schema support — Technischer Support

Ticketsystem, Nachrichten, Status und Feedback zum Support.

Beispiel-Tabellen:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Schema analytics — Metriken und Verhalten

Tracking von Sessions, User-Aktionen, Conversions und Metriken.

Beispiel-Tabellen:

  • event, session, click, page_view
  • goal, metric_snapshot

Schema admin — Administration und Management

Tabellen für Admins, Rollen, Audit-Logs und Systemeinstellungen.

Beispiel-Tabellen:

  • admin, admin_role
  • audit_log, setting, api_token

Schema content — Statische Seiten und Blöcke

Content für CMS: Seiten, Menüs, Übersetzungen und Versionen.

Beispiel-Tabellen:

  • page, block, menu, translation, version

Schema ref — Nachschlage- und Meta-Tabellen

Typen, Status, Länder, Rückgabegründe usw.

Beispiel-Tabellen:

  • country, currency, status, payment_status
  • refund_reason, inventory_change_reason

Tabellen erstellen

Damit ihr's leichter habt, geb ich euch fertige Skripte zum Erstellen aller Datenbanktabellen.

Ihr müsst einfach nur das SQL-Skript runterladen und ausführen.

  1. Erstellen Sie eine leere Datenbank in PostgreSQL.
  2. Laden Sie das Schema herunter.
  3. Importieren Sie die Datenbankstruktur:
psql -U postgres -d marketplace_db < init_schema.sql

Daten laden

Auch die Daten für alle Tabellen.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION