Thiết kế cơ sở dữ liệu
Hệ thống sử dụng PostgreSQL 16 với TimescaleDB cho dữ liệu thị trường dạng chuỗi thời gian.
Công nghệ
| Thành phần | Công nghệ | Mục đích |
|---|---|---|
| Database chính | PostgreSQL 16 + pgcrypto | Dữ liệu quan hệ, mã hóa |
| Time-series | TimescaleDB | OHLCV, analytics |
| Cache | Redis 7 | Session, rate limit, real-time |
| Queue | BullMQ (Redis) | Xử lý bất đồng bộ |
Mô hình dữ liệu chính
Users & Auth
- User — Thông tin người dùng, preferences, 2FA
- UserSession — Quản lý phiên đăng nhập
- ExchangeConnection — Kết nối sàn giao dịch (mã hóa AES-256-GCM)
Giao dịch
- Signal — Tín hiệu giao dịch (direction, entry, SL/TP, confidence, AI reasoning)
- TradePlan — Kế hoạch giao dịch (entry type, quantity, leverage)
- TradeExecution — Lệnh đã thực thi trên sàn (fill price, fee, exchange)
- Position — Vị thế mở/đóng (PnL, liquidation, margin)
Phân tích & AI
- AiAnalysis — Kết quả phân tích AI (model, confidence, features, reasoning)
- AiPrompt — Lưu vết prompt AI cho audit
Subscription & Billing
- Subscription — Gói dịch vụ (tier, status, provider, amount)
- BillingInvoice — Hóa đơn thanh toán
Khác
- JournalEntry — Nhật ký giao dịch
- AnalyticsSnapshot — Ảnh chụp chỉ số hiệu suất
- BacktestRun / BacktestTrade — Kết quả backtest
- ContentItem — Bài viết phân tích thị trường
- AuditLog — Nhật ký kiểm toán
- Notification — Thông báo người dùng
Row-Level Security (RLS)
PostgreSQL RLS được bật cho multi-tenant:
- Người dùng chỉ thấy dữ liệu của chính họ
- Admin có quyền xem toàn bộ dữ liệu
- Super admin có quyền quản trị hệ thống
TimescaleDB Hypertables
Dữ liệu thị trường được lưu trong hypertables:
market_data.ohlcv— Nến OHLCV cho tất cả symbolsanalytics.performance— Chỉ số hiệu suất theo thời gian Hypertables tự động partition theo thời gian và hỗ trợ continuous aggregates cho báo cáo.