Latar Belakang
Saya sedang membuat prototipe konversi dari database RDBMS kami ke MongoDB. Saat melakukan denormalisasi, sepertinya saya memiliki dua pilihan, yang satu mengarah ke banyak (jutaan) dokumen yang lebih kecil atau satu lagi yang mengarah ke lebih sedikit (ratusan ribu) dokumen besar.
Jika saya dapat menyaringnya menjadi analog sederhana, itu akan menjadi perbedaan antara koleksi dengan dokumen Pelanggan yang lebih sedikit seperti ini (di Java):
kelas Pelanggan { nama String pribadi; alamat Alamat pribadi; // setiap Kartu Kredit memiliki ratusan contoh Pembayaran Private Set <CreditCard> creditCards; }
atau kumpulan dengan banyak, banyak dokumen pembayaran seperti ini:
class Payment { pelanggan pribadi Pelanggan; CreditCard CreditCard pribadi; Private Date payDate; private float payAmount; }
Pertanyaan
Apakah MongoDB dirancang untuk lebih menyukai banyak, banyak dokumen kecil atau lebih sedikit dokumen besar? Apakah jawabannya sebagian besar bergantung pada kueri apa yang saya rencanakan untuk dijalankan? (mis. Berapa banyak kartu kredit yang dimiliki pelanggan X? vs Berapa jumlah rata-rata yang dibayar semua pelanggan bulan lalu?)
Saya telah melihat-lihat banyak tetapi saya tidak menemukan praktik terbaik skema MongoDB yang akan membantu saya menjawab pertanyaan saya.