Фон
Я прототипирую преобразование из нашей базы данных РСУБД в MongoDB. Несмотря на денормализацию, кажется, что у меня есть два варианта, один из которых приводит ко многим (миллионам) меньших документов или к тому, что приводит к меньшим (сотням тысяч) крупным документам.
Если бы я мог перевести его на простой аналог, это было бы разницей между коллекцией с меньшим количеством клиентских документов, подобным этому (на Java):
class Customer {
private String name;
private Address address;
// each CreditCard has hundreds of Payment instances
private Set<CreditCard> creditCards;
}
или коллекцию со многими, многими платежными документами, такими как:
class Payment {
private Customer customer;
private CreditCard creditCard;
private Date payDate;
private float payAmount;
}
Вопрос
Является ли MongoDB предпочтительным для многих, многих небольших документов или меньших документов? Ответ зависит главным образом от того, какие запросы я планирую запустить? (т.е. сколько кредитных карт имеет клиент X?). Какова средняя сумма всех клиентов, оплаченных в прошлом месяце?)
Я много огляделся, но я не наткнулся на лучшие методы схемы MongoDB, которые помогли бы мне ответить на мой вопрос.