Jika koleksi digunakan, maka setiap dokumen perlu mempunyai medan untuk mengenal pasti sama ada jenis dokumen adalah butiran pendapatan atau butiran sokongan;
Jika dua kutipan digunakan, apabila memaparkan butiran pendapatan dan perbelanjaan, anda perlu menanyakan kutipan pendapatan dan kutipan perbelanjaan secara berasingan melalui dua pertanyaan, dan kemudian menggabungkannya untuk paparan
Mari analisa keperluan tidak khusus dalam soalan anda secara terperinci:
Untuk koleksi, setiap rekod hasil dan perbelanjaan adalah dokumen yang diletakkan dalam koleksi Bagi jenis data yang berbeza, dokumen tersebut adalah skema percuma, jadi tiada masalah dalam penyimpanan data dan perbelanjaan. Cara memproses dan memaparkan jenis data yang berbeza memerlukan anda mentakrifkan struktur data dan komposisi medan butiran pendapatan dan perbelanjaan. Untuk pertanyaan, koleksi adalah sangat mudah Anda boleh membuat pertanyaan berdasarkan masa, dan kemudian memaparkan keputusan secara berasingan mengikut medan mengenal pasti pendapatan dan perbelanjaan
Jika anda membahagikannya kepada dua koleksi, tidak menjadi masalah untuk menyimpan jenis data yang berbeza, kerana anda menyimpannya secara berasingan Pada masa ini, koleksi itu pada dasarnya adalah dua jadual yang berbeza dalam hubungan db, masing-masing mengandungi datanya sendiri tanpa campur tangan antara satu sama lain; Untuk pertanyaan, lebih menyusahkan, anda perlu mengeluarkan butiran pendapatan dan perbelanjaan dari mongodb dalam dua kali mengikut masa, dan kemudian menggabungkan dan menyusun kedua-duanya dalam susunan kronologi masa, beban kerja pengisihan dipindahkan dari mongodb ke bahagian aplikasi.
Kedua-dua pilihan mempunyai kebaikan dan keburukan mereka sendiri Jika jumlah data yang anda miliki tidak terlalu besar, adalah disyorkan untuk menggunakan pilihan pertama, yang disimpan dalam koleksi dan mudah diakses Jika jumlah data adalah besar, anda boleh menggunakan pilihan kedua Pindahkan tekanan ke bahagian aplikasi Lagipun, pengembangan aplikasi lebih mudah daripada pengembangan pangkalan data.
Pendapat peribadi saya adalah menggunakan penyelesaian pertama, yang disimpan dalam koleksi Jika jumlah data tidak besar, tidak ada tekanan jika jumlah data adalah besar, butiran pendapatan dan perbelanjaan masa yang berbeza tempoh boleh disimpan dalam beberapa kali mengikut masa, apabila dipaparkan pada bahagian hadapan, dipaparkan mengikut tempoh masa. Dalam kes ini, apabila masa berlalu, anda hanya perlu meningkatkan koleksi secara mendatar, dan kod akses data tidak perlu ditukar Apabila membuat pertanyaan, anda hanya perlu menukar koleksi yang berbeza mengikut tempoh masa pertanyaan, iaitu mudah dan cekap.
Idea intuitif:
Untuk koleksi, setiap rekod hasil dan perbelanjaan adalah dokumen yang diletakkan dalam koleksi Bagi jenis data yang berbeza, dokumen tersebut adalah skema percuma, jadi tiada masalah dalam penyimpanan data dan perbelanjaan. Cara memproses dan memaparkan jenis data yang berbeza memerlukan anda mentakrifkan struktur data dan komposisi medan butiran pendapatan dan perbelanjaan. Untuk pertanyaan, koleksi adalah sangat mudah Anda boleh membuat pertanyaan berdasarkan masa, dan kemudian memaparkan keputusan secara berasingan mengikut medan mengenal pasti pendapatan dan perbelanjaan-
Jika anda membahagikannya kepada dua koleksi, tidak menjadi masalah untuk menyimpan jenis data yang berbeza, kerana anda menyimpannya secara berasingan Pada masa ini, koleksi itu pada dasarnya adalah dua jadual yang berbeza dalam hubungan db, masing-masing mengandungi datanya sendiri tanpa campur tangan antara satu sama lain; Untuk pertanyaan, lebih menyusahkan, anda perlu mengeluarkan butiran pendapatan dan perbelanjaan dari mongodb dalam dua kali mengikut masa, dan kemudian menggabungkan dan menyusun kedua-duanya dalam susunan kronologi masa, beban kerja pengisihan dipindahkan dari mongodb ke bahagian aplikasi. -
Kedua-dua pilihan mempunyai kebaikan dan keburukan mereka sendiri Jika jumlah data yang anda miliki tidak terlalu besar, adalah disyorkan untuk menggunakan pilihan pertama, yang disimpan dalam koleksi dan mudah diakses Jika jumlah data adalah besar, anda boleh menggunakan pilihan kedua Pindahkan tekanan ke bahagian aplikasi Lagipun, pengembangan aplikasi lebih mudah daripada pengembangan pangkalan data.