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 cодержит таблицы аккаунтов, профилей, контактной информации, логов входа, отзывов и социальных связей.

Примеры таблиц:

  • 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

Загрузка данных

Также данные для всех таблиц.

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ