Tek Veritabanında Şirket İzolasyonu (Tenant Scoping)
Küçük ve orta ölçekli işletmeler (KOBİ) için geliştirdiğim Feep - Bulut Süreç & Finans Yönetimi platformunda yüzlerce işletmenin cari hesapları, faturaları ve personel yetkileri bulunur. SaaS mimarisinde her firmaya ayrı veritabanı açmak maliyet ve bakım zorluğu getirir; bu nedenle tek veritabanında mantıksal izolasyon (Single Database Multi-Tenancy) uyguladım.
Global Scope ile Veri Sızıntısını Sıfırlama
Laravel Eloquent'in Global Scope yeteneği, geliştirici sorgu yazarken filtrelemeyi unutsan dahi firmanın sadece kendi kayıtlarını görmesini sağlar:
class TenantScope implements Scope
{
public function apply(Builder $builder, Model $model): void
{
if (auth()->check() && auth()->user()->company_id) {
$builder->where($model->getTable() . '.company_id', auth()->user()->company_id);
}
}
}
Finansal Hesaplamalarda Float Yerine Tamsayı Mantığı
Para hesaplamalarında asla FLOAT veya DOUBLE kullanılmaz. Yuvarlama hatalarını önlemek için kuruş cinsinden BIGINT veya kesinlik sağlayan DECIMAL(15, 2) tipi tercih edilir. Bu sayede KDV matrahı ve stopaj hesaplamalarında sıfır sapma elde edilir.