KRİTİK DÜZELTME 6 Ocak 2026

Database Yapısı Netleştirildi

Multi-Tenant Mimarisi - Database Per Tenant Pattern

YANLIŞ BİLGİ DÜZELTİLDİ!

❌ ESKİ (YANLIŞ):

  • • "Central database - users, roles, permissions (tüm tenant'lar için ortak)"
  • • "Tenant database'e user bilgisi yazma!"
  • • "User::all() → Central database'den çeker"

✅ YENİ (DOĞRU):

  • Her tenant'ın KENDI users, roles, permissions tabloları var!
  • • Central DB sadece tenant yönetimi ve sistem admin'leri için
  • • User::all() → Tenant context'te TENANT DB'den çeker!

Basit Anlatım (Herkes İçin)

Ne oldu?
CLAUDE.md dosyasında yanlış bilgi vardı. "Kullanıcılar (users) central database'de" diye yazıyordu. Bu YANLIŞ! Her tenant'ın (muzibu.com, ixtif.com gibi sitelerin) kendi kullanıcı tablosu var.

Gerçek Mimari:

Central DB (tuufi_4ekim)
  • ✓ Tenant yönetimi (tenants, domains)
  • ✓ Abonelik sistemi (subscriptions)
  • ✓ Sistem admin'leri (19 kullanıcı)
  • ✓ AI modülü (merkezi)
Tenant DB (tenant_muzibu_1528d0)
  • ✓ Kendi kullanıcıları (21 kullanıcı)
  • ✓ Kendi roles, permissions
  • ✓ Müzik platformu (songs, albums...)
  • ✓ Sayfalar, bloglar, ayarlar

Neden önemli?
Her site tamamen bağımsız çalışıyor. Muzibu'nun kullanıcıları İxtif'i görmüyor, İxtif'in kullanıcıları Muzibu'yu görmüyor. Tıpkı her apartmanın kendi kapısı, kendi kiracıları olması gibi.

Sonuç:

User model'e "primary_sector_id" field'ı ekleyeceğimizde, bunu TENANT DB'ye ekleyeceğiz. Central DB'ye değil! Migration dosyası SADECE "database/migrations/tenant/" klasöründe olacak.

Teknik Detaylar

Multi-Tenancy Pattern: Database Per Tenant

Sistem "Database Per Tenant" pattern kullanıyor. Her tenant tamamen izole edilmiş kendi database'inde çalışır.

Database Sayıları:
• Central DB (tuufi_4ekim): 168 tablo
• Tenant Muzibu (tenant_muzibu_1528d0): 109 tablo
• Tenant İxtif (tenant_ixtif): ~80 tablo

Central Database (tuufi_4ekim)

Tenant Yönetimi:
  • • tenants
  • • domains
  • • module_tenants
Abonelik Sistemi:
  • • subscriptions
  • • ai_credit_packages
  • • ai_credit_transactions
Sistem Admin:
  • • users (19 sistem admin)
  • • roles
  • • permissions
AI Modülü:
  • • ai_features
  • • ai_prompts
  • • ai_conversations

Tenant Database (tenant_muzibu_1528d0)

Kullanıcı Sistemi:
  • • users (21 Muzibu kullanıcısı)
  • • roles
  • • permissions
  • • model_has_roles
  • • model_has_permissions
İçerik Yönetimi:
  • • pages
  • • blogs
  • • media
  • • seo_settings
E-Ticaret:
  • • shop_products
  • • shop_categories
  • • shop_brands
  • • shop_settings
Müzik Platformu:
  • • muzibu_songs
  • • muzibu_albums
  • • muzibu_artists
  • • muzibu_playlists
  • • muzibu_genres
  • • muzibu_sectors

Laravel Model Connection

User model'de connection tanımı YOK. Tenant context'te otomatik olarak tenant database kullanılır.

app/Models/User.php:
class User extends Authenticatable
{
    // Connection tanımı YOK!
    // Tenant context'te → tenant_muzibu_1528d0.users
    // Central context'te → tuufi_4ekim.users

    protected $table = 'users';
}
✅ Stancl/Tenancy paketi otomatik connection switching yapıyor

Migration Stratejisi

User model'e field eklerken SADECE tenant migration oluştur!

❌ YANLIŞ:
database/migrations/add_primary_sector_to_users.php
↓ Central DB'ye eklenir → YANLIŞ!
✅ DOĞRU:
database/migrations/tenant/add_primary_sector_to_users.php
↓ Tenant DB'ye eklenir → DOĞRU!
Çalıştırma:
php artisan tenants:migrate --force
↓ Tüm tenant'larda users tablosuna field eklenir

CLAUDE.md'de Yapılan Değişiklikler

1. Database Dağılımı Bölümü

ESKİ (YANLIŞ):
Central Database:
- users, roles, permissions
- Kullanıcı & yetki sistemi
YENİ (DOĞRU):
Central Database:
- users (SADECE sistem admin)

Tenant Database:
- users, roles, permissions
- HER TENANT KENDI KULLANICILARI

2. Kritik Kurallar Bölümü

ESKİ (YANLIŞ):
❌ Tenant database'e
user bilgisi yazma!
User → Central database'de!
YENİ (DOĞRU):
❌ Tenant verilerini
central'dan okuma!
Her şey (users dahil)
tenant DB'den okunur!

3. Kod Örnekleri

ESKİ (YANLIŞ):
// Central verisi
User::all();
Role::all();
YENİ (DOĞRU):
// Tenant verisi (otomatik)
User::all(); // Tenant DB
Role::all(); // Tenant DB

Sonuç ve Etki

✅ Düzeltilen Dosyalar:

  • CLAUDE.md - Database dağılımı güncellendi
  • public/readme/.../sektor-sistem-analiz/v1/index.html - "users (Tenant DB)" düzeltmesi

📊 Doğrulanan Veriler:

Central DB
19
sistem admin
Muzibu Tenant
21
kullanıcı
İxtif Tenant
7
kullanıcı

Bundan Sonra:

  • User model'e field eklerken → TENANT migration oluştur
  • Tenant context'te User::all() → Otomatik tenant DB'den çeker
  • Her tenant tamamen izole - Kendi users, roles, permissions