Architektura MongoDb

0

Cześć!
Pracuję nad pewną aplikacją w której każdy klient będzie mieć swoich użytkowników, swoje usługi itd.. Jako bazę danych wybrałem mongoDB.
Pytanie mam takie mianowicie (najlepiej do osób z doświadczeniem w tym temacie :) ):
Czy dobrym pomysłem jest tworzenie nowej bazy dla każdego klienta, czy może jest lepszy sposób na podejście do tego?

Moim planem było zrobienie oddzielnej bazy w której do każdego użytkownika który będzie tworzył konto dopisywane będzie jakieś id które ma posłużyć właśnie za nazwę bazy danych. Jakie były by plusy tego podejścia i jakie minusy? A może jest jakiś lepszy sposób na zrobienie tego?

3

Tak dla wyjaśnienia, problem nie ma zbyt wiele wspólnego z MongoDB bo to samo pytanie można by zadać przy użyciu jakiejkolwiek innej bazy danych.

To jakie podejście wybrać zależy przede wszystkim od wymagań Twojej aplikacji. W zasadzie na tym można by skończyć temat. Jeśli spodziewasz się stosunkowo małych ilości danych to możesz zastosować tzw. multi-tenant database, czyli wszystko w jednej bazie i każdy rekord (dokument) z przypisanym tenant ID. Ale znów- jeśli jednym z niekwestionowanych wymogów bezpieczeństwa byłby fizyczny podział danych na podstawie klienta, to oczywiście należało by zastosować podejście per-tenant database.

Do tego dochodzą kwestie związane z kosztami, czy np. płacisz za hosting każdej instancji bazy itp. Reasumując- to zależy...

0

W zarządzeniu i skalowaniu łatwiej jest mieć wszystkie dane klientów w jednej bazie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1