JavaRush /Курси /SQL SELF /Marketplace Database Architecture

Marketplace Database Architecture

SQL SELF
Рівень 61 , Лекція 0
Відкрита

Оскільки ти вже все знаєш і вмієш, настав час спробувати свої знання на реальному проєкті. Зазвичай бази даних реальних проєктів діляться на:

  • маленькі — до 100 таблиць
  • середні — 100-1000 таблиць
  • великі — від 1000 таблиць.

Без досвіду важко уявити, навіщо потрібно 100+ таблиць. Тому сьогодні я дам тобі таку можливість :)

Я дам тобі реалістичну реляційну базу даних для e-commerce платформи (Marketplace). База розбита на схеми, кожна з яких відповідає за певну предметну область: користувачі, товари, замовлення, логістика, маркетинг, підтримка тощо.

Проєкт складається з 109 таблиць, розбитих по 11 схемах. Кожна таблиця має зовнішні ключі, а також підготовлена до розширення за допомогою довідників і системних таблиць.

Структура бази даних

Схема user — Користувачі та активність

Схема user містить таблиці акаунтів, профілів, контактної інформації, логів входу, відгуків і соціальних зв'язків.

Приклади таблиць:

  • account — дані реєстрації
  • profile — особиста інформація
  • review, comment — відгуки та коментарі

Схема product — Товари та каталог

Схема product містить описи товарів, їх варіантів, атрибутів, зображень, статусів і історії змін.

Приклади таблиць:

  • product, variant — товари та модифікації
  • attribute, tag — характеристики та теги
  • supplier, composition — виробники та склад

Схема order — Замовлення та кошики

Містить механізм оформлення та відстеження замовлень, статусів, повернень і оплат.

Приклади таблиць:

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

Схема logistics — Склади, доставка, маршрути

Управління складськими запасами, переміщеннями, доставками та маршрутами.

Приклади таблиць:

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

Схема payment — Платежі та транзакції

Зберігає інформацію про платіжні системи, транзакції, гаманці та повернення.

Приклади таблиць:

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

Схема marketing — Акції та реклама

Містить таблиці промокодів, банерів, реферальних програм і виділених товарів.

Приклади таблиць:

  • campaign, promo_code, discount
  • referral_program, featured_product

Схема support — Технічна підтримка

Система тікетів, повідомлень, статусів і відгуків на підтримку.

Приклади таблиць:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Схема analytics — Метрики та поведінка

Відстеження сесій, дій користувачів, конверсій і метрик.

Приклади таблиць:

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

Схема admin — Адміністрування та керування

Таблиці адміністраторів, ролей, журналів аудиту та системних налаштувань.

Приклади таблиць:

  • admin, admin_role
  • audit_log, setting, api_token

Схема content — Статичні сторінки та блоки

Контент для CMS: сторінки, меню, переклади та версії.

Приклади таблиць:

  • page, block, menu, translation, version

Схема ref — Довідники та мета-таблиці

Типи, статуси, країни, причини повернення тощо.

Приклади таблиць:

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

Створення таблиць

Щоб полегшити тобі життя, я дам готові скрипти для створення всіх таблиць бази даних.

Тобі потрібно буде просто скачати SQL-скрипт з кодом і запустити його.

  1. Створіть порожню базу даних у PostgreSQL.
  2. Завантажте схему.
  3. Імпортуйте структуру бази даних:
psql -U postgres -d marketplace_db < init_schema.sql

Завантаження даних

Також дані для всіх таблиць.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ