Czy baza danych dla wielu dzierżawców:
- Serwer DB, który ma inną (identyczną) bazę danych / schemat dla każdego klienta / najemcy ?; lub
- Serwer DB, który ma bazę danych / schemat, w której klienci / najemcy współużytkują rekordy w tych samych tabelach?
Na przykład, zgodnie z Opcją 1 powyżej, mogę mieć serwer MySQL na, powiedzmy mydb01.example.com
, i może mieć w nim customer1
bazę danych. Ta customer1
baza danych może mieć, powiedzmy, 10 tabel, które zasilają moją aplikację dla tego konkretnego klienta (Klient nr 1). Może także zawierać customer2
bazę danych zawierającą dokładnie te same 10 tabel, ale zawierającą tylko dane dla klienta nr 2. Może mieć customer3
bazę danych, customer4
bazę danych itd.
W Opcji # 2 powyżej istniałaby tylko jedna baza danych / schemat, powiedzmy myapp_db
, znowu z 10 tabelami (takimi samymi jak powyżej). Ale tutaj dane wszystkich klientów istnieją w tych 10 tabelach, dlatego też „dzielą się” nimi. A w warstwie aplikacji logika i kontrola bezpieczeństwa, do których klienci mają dostęp, które rekordy w tych 10 tabelach, i należy dołożyć wszelkich starań, aby Klient nr 1 nigdy nie logował się do aplikacji i nie widział danych Klienta nr 3 itp.
Który z tych paradygmatów stanowi tradycyjną bazę danych „wielu dzierżawców”? A jeśli nie, to czy ktoś może podać mi przykład (przy użyciu opisanych powyżej scenariuszy), czym jest baza danych dla wielu dzierżawców?