Wprowadzenie
Prototypuję konwersję z naszej bazy danych RDBMS do MongoDB. Podczas denormalizacji wydaje mi się, że mam dwie możliwości, jedną, która prowadzi do wielu (milionów) mniejszych dokumentów lub taką, która prowadzi do mniejszej liczby (setek tysięcy) dużych dokumentów.
Gdybym mógł sprowadzić to do prostego analogu, byłaby to różnica między kolekcją z mniejszą liczbą dokumentów Klienta, takich jak ten (w Javie):
class Customer { prywatna nazwa String; adres prywatny; // każda karta kredytowa ma setki instancji płatności prywatne karty kredytowe Set <CreditCard>; }
lub zbiór zawierający wiele, wiele dokumentów płatności, takich jak ten:
class Payment { klient prywatny; prywatna karta kredytowa karta kredytowa; prywatna data payDate; private float payAmount; }
Pytanie
Czy MongoDB zostało zaprojektowane tak, aby preferować wiele, wiele małych dokumentów lub mniej dużych dokumentów? Czy odpowiedź zależy głównie od zapytań, które planuję uruchomić? (tj. ile kart kredytowych ma klient X? a jaka była średnia kwota, którą wszyscy klienci zapłacili w zeszłym miesiącu?)
Dużo się rozglądałem, ale nie natknąłem się na żadne sprawdzone metody dotyczące schematu MongoDB, które pomogłyby mi odpowiedzieć na moje pytanie.