Çok kiracılı bir veritabanıdır:
- Her müşteri / kiracı için farklı (özdeş) veritabanı / şemaya sahip bir DB sunucusu ?; veya
- Müşterilerin / kiracıların aynı tablodaki kayıtları paylaştığı bir veritabanı / şemaya sahip bir DB sunucusu mu?
Örneğin, yukarıda Seçenek # 1 altında, mesela bir MySQL sunucum mydb01.example.com
olabilir ve bunun customer1
içinde bir veritabanı olabilir . Bu customer1
veritabanı, söz konusu müşteri için başvurumu güçlendiren 10 tabloya sahip olabilir (Müşteri 1). Ayrıca customer2
içinde aynı 10 tablo bulunan bir veritabanına sahip olabilir , ancak yalnızca Müşteri # 2 için veri içeriyor. Bir customer3
veritabanına, bir customer4
veritabanına ve benzerlerine sahip olabilir.
Yukarıdaki Seçenek # 2'de myapp_db
, yine içinde sadece 10 tablo bulunan tek bir veri tabanı / şeması olacaktır (yukarıdakiyle aynı olanlar). Ancak burada, tüm müşterilerin verileri bu 10 tablonun içinde var ve bu nedenle tabloları "paylaşıyor". Ve uygulama katmanında, müşterilerin bu 10 tabloda hangi kayıtlara erişebildiklerini ve Müşteri # 1'in hiçbir zaman uygulamaya girmemesini ve Müşteri # 3'ün verilerini görmesini vb.
Bu paradigmalardan hangisi geleneksel "çok kiracılı" bir DB oluşturur? Ve eğer ikisi de değilse, birisi bana çok kiracılı bir DB'nin ne olduğuna dair bir örnek verebilir (yukarıda açıklanan senaryoları kullanarak)?