Так как вы уже все знаете и умеете, настало время попробовать вам свои знания на реальном проекте. Обычно базы данных реальных проектов делятся на:
- маленькие - до 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_itemstatus_log,return,cancellationinvoice,discount
Схема logistics — Склады, доставка, маршруты
Управление складскими запасами, перемещениями, доставками и маршрутами.
Примеры таблиц:
warehouse,inventory,transfershipping_method,packagedriver,carrier,route
Схема payment — Платежи и транзакции
Хранит информацию о платёжных системах, транзакциях, кошельках и возвратах.
Примеры таблиц:
payment,transaction,refundwallet,wallet_transactiongateway,method
Схема marketing — Акции и реклама
Содержит таблицы промокодов, баннеров, реферальных программ и выделенных товаров.
Примеры таблиц:
campaign,promo_code,discountreferral_program,featured_product
Схема support — Техническая поддержка
Система тикетов, сообщений, статусов и отзывов на поддержку.
Примеры таблиц:
ticket,ticket_message,ticket_statusagent,feedback
Схема analytics — Метрики и поведение
Слежение за сессиями, действиями пользователей, конверсиями и метриками.
Примеры таблиц:
event,session,click,page_viewgoal,metric_snapshot
Схема admin — Администрирование и управление
Таблицы администраторов, ролей, журналов аудита и системных настроек.
Примеры таблиц:
admin,admin_roleaudit_log,setting,api_token
Схема content — Статические страницы и блоки
Контент для CMS: страницы, меню, переводы и версии.
Примеры таблиц:
page,block,menu,translation,version
Схема ref — Справочники и мета-таблицы
Типы, статусы, страны, причины возврата и др.
Примеры таблиц:
country,currency,status,payment_statusrefund_reason,inventory_change_reason
Создание таблиц
Чтобы облегчить вам жизнь, я выдам вам готовые скрипты для создания всех таблиц базы данных.
Вам нужно будет просто скачать SQL-скрипт с кодом и запустить его.
- Создайте пустую базу данных в PostgreSQL.
- Скачайте схему.
- Импортируйте структуру базы данных:
psql -U postgres -d marketplace_db < init_schema.sql
Загрузка данных
Также данные для всех таблиц.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ