Фон
Я прототипирую преобразование из нашей базы данных РСУБД в 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, которые помогли бы мне ответить на мой вопрос.