Довідкова інформація
Я прототипую перетворення з нашої бази даних СУБД в MongoDB. Денормалізуючи, здається, ніби я маю два варіанти: один, який призводить до багатьох (мільйонів) менших документів, або той, що веде до меншої кількості (сотні тисяч) великих документів.
Якби я міг перегнати його до простого аналога, це була б різниця між колекцією з меншою кількістю документів Клієнта, подібних до цього (на Java):
клас Клієнт {
ім'я приватного рядка;
приватна адреса;
// кожна CreditCard має сотні екземплярів платежів
приватний набір кредитних карток <CreditCard>;
}
або колекція з багатьма, багатьма платіжними документами, як це:
клас Оплата {
приватний замовник;
приватна CreditCard CreditCard;
приватна дата оплати дати;
private float payAmount;
}
Запитання
Чи призначений MongoDB для того, щоб віддавати перевагу багатьом, багатьом дрібним документам або меншій кількості великих документів? Чи здебільшого відповідь залежить від того, які запити я планую виконати? (тобто скільки кредитних карток має клієнт X? проти Якої середньої суми сплатили всі клієнти минулого місяця?)
Я багато оглядався, але не натрапляв на жодну найкращу практику схеми MongoDB, яка допомогла б мені відповісти на моє запитання.