Bu konuyu en az 6-7 senedir çeşitli forumlarda ortamlarda tartışıyorum. Burda da konum vardır kesin, ne kadar Slack, Discord, Telegram kanalı varsa, ne kadar forum varsa, ne kadar meetup varsa hepsinde cevap aradım.
Ama bunun kesin bir cevabı olmadığını görüp bıraktım. 😃
Cevap: size hangisi daha uygunsa doğru olan odur. Bu kadarla kestirip atmak hoş değil biliyorum ama maalesef bu konuda sizi tatmin edecek cevabı bulamayacaksınız.
Ben ikisini de denedim. İkisiyle de çalıştım, ikisiyle de yoruldum. Günün sonunda hangisini tercih ederim derseniz %51 ile tek DB kazanır.
Tek DB seçme sebepleri:
-Güncelleştirmek daha kolay. İstediğin kadar otomatize et, güncelleştirme çoklu DB'de eziyet.
-Veri izolasyonu zor gibi görünüyor ama sizi challenge a zorluyor. Laravel özelinde konuşursak ben Gate'leri Policy'leri kullanmayı asla öğrenmezdim bu yola girmesem. Kolaya kaçmadan çaba harcarsanız sonucunda çok verimli bir yapı kurabilirsiniz.
Tek DB seçmeme sebepleri:
-Kiracıya özel dikey geliştirmeler eziyet.
Boş laflar:
-Efendim tek DB'de çalışırsan bir kiracının verisi büyürse diğer kiracıları etkiler.. derler. Eğer sen altyapını yatayda genişletemiyorsan tek bir kiracının verisi kendi DB'sinde çok büyürse sizin için değişen bişey olmaz. Yine isyanlardasınız. Öyle altyapı kuracaksınız ki hem yatay hem dikey genişlemeye imkan verecek. Ama dikey olmasa bile yatay kesin genişletebilmelisiniz. Biraz devops a kaçıyor konu ama multitenant bir girişim yapacaksanız bunlara hakim olmak zorla değil mecburi.
Uzun lafın kısası: tek DB'yi sonra bölmesi daha kolay, çok DB'yi sonra birleştirmesi daha zor. Tek DB ile başlayın, baktınız olmuyor, çoğaltırsınız.
Kolay gelsin. 🙂