Marketplace Database Architecture
Artıq hər şeyi bildiyinə və bacardığına görə, real bir layihədə biliklərini yoxlamağın vaxtıdır. Adətən real layihələrin database-ləri belə bölünür:
- kiçik - 100 cədvələ qədər
- orta - 100-1000 cədvəl
- böyük - 1000-dən çox cədvəl.
Təcrübə olmadan, 100+ cədvələ niyə ehtiyac olduğunu təsəvvür etmək çətindir. Ona görə də bu gün sənə belə bir imkan verəcəm :)
Sənə e-commerce platforması üçün realistik relasional database (Marketplace) verəcəm. Database sxemlərə bölünüb, hər biri müəyyən mövzu sahəsinə cavabdehdir: istifadəçilər, məhsullar, sifarişlər, logistika, marketinq, dəstək və s.
Layihə 109 cədvəldən ibarətdir və 11 sxemə bölünüb. Hər cədvəl xarici açarlarla təmin olunub və referans cədvəllər və sistem cədvəlləri ilə genişlənməyə hazırdır.
Database strukturu
user sxemi — İstifadəçilər və aktivlik
user sxemi hesablar, profillər, əlaqə məlumatları, giriş logları, rəylər və sosial əlaqələr üçün cədvəlləri saxlayır.
Cədvəl nümunələri:
account— qeydiyyat məlumatlarıprofile— şəxsi məlumatlarreview,comment— rəylər və şərhlər
product sxemi — Məhsullar və kataloq
product sxemi məhsulların təsvirləri, variantları, atributları, şəkilləri, statusları və dəyişiklik tarixçəsini saxlayır.
Cədvəl nümunələri:
product,variant— məhsullar və modifikasiyalarattribute,tag— xüsusiyyətlər və teqlərsupplier,composition— istehsalçılar və tərkib
order sxemi — Sifarişlər və səbətlər
Sifarişlərin yaradılması və izlənməsi, statuslar, geri qaytarmalar və ödənişlər mexanizmini saxlayır.
Cədvəl nümunələri:
order,order_itemstatus_log,return,cancellationinvoice,discount
logistics sxemi — Anbarlar, çatdırılma, marşrutlar
Anbar ehtiyatlarının idarə olunması, hərəkətlər, çatdırılmalar və marşrutlar.
Cədvəl nümunələri:
warehouse,inventory,transfershipping_method,packagedriver,carrier,route
payment sxemi — Ödənişlər və tranzaksiyalar
Ödəniş sistemləri, tranzaksiyalar, pul kisələri və geri qaytarmalar haqqında məlumatları saxlayır.
Cədvəl nümunələri:
payment,transaction,refundwallet,wallet_transactiongateway,method
marketing sxemi — Kampaniyalar və reklam
Promo kodlar, bannerlər, referal proqramlar və seçilmiş məhsullar üçün cədvəllər saxlayır.
Cədvəl nümunələri:
campaign,promo_code,discountreferral_program,featured_product
support sxemi — Texniki dəstək
Bilet sistemi, mesajlar, statuslar və dəstəyə rəy cədvəlləri.
Cədvəl nümunələri:
ticket,ticket_message,ticket_statusagent,feedback
analytics sxemi — Metrikalar və istifadəçi davranışı
Session-ların, istifadəçi hərəkətlərinin, konversiyaların və metrikaların izlənməsi.
Cədvəl nümunələri:
event,session,click,page_viewgoal,metric_snapshot
admin sxemi — Adminstrasiya və idarəetmə
Adminlər, rollar, audit jurnalları və sistem ayarları üçün cədvəllər.
Cədvəl nümunələri:
admin,admin_roleaudit_log,setting,api_token
content sxemi — Statik səhifələr və bloklar
CMS üçün kontent: səhifələr, menyu, tərcümələr və versiyalar.
Cədvəl nümunələri:
page,block,menu,translation,version
ref sxemi — Referanslar və meta-cədvəllər
Tip, status, ölkələr, geri qaytarma səbəbləri və s.
Cədvəl nümunələri:
country,currency,status,payment_statusrefund_reason,inventory_change_reason
Cədvəllərin yaradılması
İşini asanlaşdırmaq üçün sənə bütün database cədvəllərini yaratmaq üçün hazır skriptlər verəcəm.
Sən sadəcə SQL-skriptini yükləyib işə salmalısan.
- PostgreSQL-də boş bir verilənlər bazası yaradın.
- Sxemi yükləyin.
- Verilənlər bazasının strukturunu idxal edin:
psql -U postgres -d marketplace_db < init_schema.sql
Məlumatların yüklənməsi
Həmçinin bütün cədvəllər üçün məlumatlar.
GO TO FULL VERSION