AI Hikaye Oyunu
Veritabanı Mimari Raporu — v3
6 tablo, 10 index, 4 JSONB kolonu, 2 HNSW vektör index'i. PostgreSQL + pgvector + Redis üzerine kurulu, Bun/ElysiaJS ile servis edilen interaktif hikaye motoru.
Bun
Runtime
ElysiaJS
Framework
TypeBox
Validation
PostgreSQL 17
JSONB + pgvector
Redis
Cache + Lock
Drizzle ORM
Type-safe SQL
Tablo İlişki Haritası
Tablolara tıklayarak detaylarına gidin. Oklar CASCADE silme yönünü gösterir.
stories.user_id ON DELETE SET NULL (kullanıcı silinse bile hikayeler korunur). Diğer tüm FK'lar ON DELETE CASCADE.
Veri Modeli Detayları
Tabloyu seçin, sonra Kolonlar / Indexler / SQL sekmelerini kullanarak detayları keşfedin.
Index Stratejisi
10 index — her biri belirli bir sorgu pattern'ine göre optimize edilmiş. Kategoriye göre filtreleyebilirsiniz.
JSONB Kolon Şemaları
PostgreSQL JSONB içeriğini doğrulamaz — validasyon ElysiaJS TypeBox katmanında yapılır. İçerik yapılarını inceleyin.
story_config
stories tablosunda
Alan Açıklamaları
5-Faz İstek Pipeline'ı
Kullanıcı her hamle yaptığında sırayla çalışan 5 faz. Tıklayarak her fazın detayını görün.
Transaction Simülatörü
Phase 4'teki atomik işlem zinciri. Senaryo seçerek başarılı ve başarısız akışları karşılaştırın.
Senaryo Seçin
CASCADE Silme Zinciri
Bir tablodan kayıt sildiğinizde hangi tablolar otomatik etkilenir? Kutulara tıklayarak deneyin.
Ölçeklenebilirlik Projeksiyonu
1000 aktif kullanıcı, günde ortalama 20 hamle senaryosu.
Satır Sayısı Büyümesi
story_chunks vs story_decisions vs users (60 gün)
Disk Alanı Projeksiyonu
Tablo + Index boyutları (embedding ~6KB/satır)
Sorgu Performansı Karşılaştırması
Index optimizasyonlarının etkisi (ms — düşük = iyi)
Cache Dirty Akışı
Redis↔PostgreSQL senkronizasyon akışı
stories.cache_dirty =
trueSET story:{storyId} → session_data + story_config
falsetrue kalır. Sonraki Phase 2'de PG'den okunur.Ekip Geri Dönüşleri
Arkadaşlardan gelen sorular, öneriler ve alınan kararlar. Kartlara tıklayarak detayları görebilirsiniz.
ER Diyagramı — Önce / Sonra
Çözülen soruların ER diyagramı üzerindeki etkisi. Değişen alanlar işaretlenmiştir.
Bu filtreye uygun geri dönüş bulunamadı.