Veri katmanları
Haljet tek bir “veritabanı” değildir. Her katman farklı bir soruyu hızlı cevaplamak içindir.
| Katman | Soru | Teknoloji |
|---|---|---|
| İlişkisel | Bu kullanıcı kim, ürün nedir, bakiye kaç? | MySQL, Prisma, 77 model |
| Belge | Bu siparişin tüm hikâyesi nedir? | MongoDB, Mongoose |
| Arama | Bu isim hangi ürüne benzer? | v1: MeiliSearch · v2 yeni mobil: MySQL sorgusu |
| Kuyruk / kilit | Bu iş şimdi mi, sonra mı, tek mi? | Redis, Bull, MurLock |
| Analitik | Bu olaylar zaman içinde nasıl? | BigQuery |
Hangi iş kaydının hangi katmanda olduğu: Nerede ne tutulur.
MySQL (Prisma)
Tablo adları model adlarıyla aynıdır (@@map yoktur). Soft delete bazı tablolarda deletedAt ile yapılır (User, Category, Post, SurveyQuestion).
Bölümler:
- Genel bakış
- Kimlik ve izinler
- Coğrafya ve adres
- Katalog ve stok kartı
- Depo ve teslimat alanı
- Cari, kasa ve fatura numarası
- CRM ve alıcı grupları
- Enum değerleri
MongoDB
Koleksiyonlar sipariş, hareket ve özet belgeleridir. Prisma’daki kullanıcı/ürün/depo, Mongo belgelerine kopya olarak gömülür. Kopya, belgenin yazıldığı andaki fotoğraftır; ana kart sonradan değişse bile sipariş o anki isim ve vergi ile kalır.
Geçiş boyunca iki servis ortak koleksiyonlara yazabilir; v2 ayrıca stok alımı/sayımı, satıcı iadesi, fatura içe aktarma ve bekleyen cari kayıtları için kendi koleksiyonlarını kullanır. Sahiplik sınırı: Geçiş ve veri sahipliği.
Bölümler:
- Genel bakış
- Sipariş ve iade
- Stok ve transfer
- Cari ve fatura
- İletişim ve iş akışı
- Raporlar ve fiyat
- Durum değerleri
BigQuery
Canlı olay tabloları: BigQuery.