Предпосылки
Я создаю прототип преобразования нашей базы данных СУБД в MongoDB. При денормализации кажется, что у меня есть два варианта: один ведет к множеству (миллионам) меньших документов, а другой ведет к меньшему количеству (сотням тысяч) больших документов.
Если бы я мог свести его к простому аналогу, это была бы разница между коллекцией с меньшим количеством документов Customer, подобными этой (на Java):
class Customer { частное строковое имя; частный адресный адрес; // каждая CreditCard имеет сотни экземпляров Payment частные кредитные карты Set <CreditCard>; }
или коллекция с большим количеством Платежных документов, подобных этой:
class Payment { частный заказчик; частная CreditCard CreditCard; приватная дата payDate; private float payAmount; }
Вопрос:
Разработана ли MongoDB для предпочтения большого количества маленьких документов или меньшего количества больших документов? Зависит ли ответ в основном от того, какие запросы я планирую запустить? (т.е. Сколько кредитных карт у клиента X? Какая средняя сумма была выплачена всеми клиентами в прошлом месяце?)
Я много оглядывался, но не наткнулся на какие-либо передовые практики схемы MongoDB, которые помогли бы мне ответить на мой вопрос.