MongoDB mempertimbangkan dua mod asas: dokumen dan jadual.
Mod dokumen merekodkan rekod ke dalam dokumen, dengan mengambil pilihan kursus pelajar sebagai contoh, ia merekodkan semua kursus yang dipilih oleh pelajar di bawah mod jadual pisah dokumennya adalah seperti pangkalan data hubungan, di mana pelajar dan kursus dipisahkan jadual , dan kemudian buat jadual surat-menyurat antara pelajar dan kursus (pemilihan kursus).
Kelebihan utama dokumen ialah kecekapan membaca yang tinggi MongoDB tidak mempunyai joint Jika ia dibahagikan kepada jadual, beberapa pertanyaan akan dibuat untuk setiap pertanyaan yang melibatkan beberapa jadual. Kelemahan utama dokumen tersebut ialah menyusahkan untuk diselenggara Sebagai contoh, jika anda mengubah suai maklumat kursus, anda perlu mencari semua dokumen pelajar yang mengandungi kursus ini dan mengubah suainya satu demi satu. Selain itu, saiz dokumen adalah terhad dan data tidak boleh ditambah selama-lamanya.
Kebaikan dan keburukan sub-jadual adalah bertentangan dengan jenis dokumen.
Dalam amalan, anda perlu menimbang pilihan anda Data yang dibaca terutamanya cenderung memilih mod dokumen, dan data dengan kekerapan tulis/ubah suai yang tinggi boleh mempertimbangkan pemisahan jadual. Di samping itu, untuk medan yang boleh meningkatkan data secara tidak terhingga, biasanya perlu mempertimbangkan penyimpanan dalam jadual berasingan.
Biasanya, kedua-duanya digunakan dalam kombinasi, dan maklumat dengan kekerapan bacaan yang lebih tinggi direkodkan dalam dokumen, dan maklumat terperinci lain dibuat secara berasingan. Dalam contoh anda, dua jadual dicipta untuk pelajar dan kursus Maklumat asas pemilihan kursus (seperti kod kursus dan nama) direkodkan di bawah setiap dokumen pelajar, dan kemudian maklumat khusus setiap kursus disimpan dalam jadual kursus.
Setiap kali anda menyenaraikan maklumat pemilihan kursus pelajar, satu pertanyaan boleh menyenaraikan kod dan nama semua pilihan kursus Apabila anda perlu melihat maklumat terperinci kursus tertentu, lakukan pertanyaan lain pada jadual kursus. Ini boleh menyimpan satu pertanyaan berbanding dengan pembahagian jadual lengkap, dan mengurangkan saiz dokumen dan skop pengubahsuaian apabila mengubah suai maklumat kursus berbanding dengan rakaman dokumen lengkap.
Jika anda ingin memadamkan kursus, padamkan dahulu dokumen kursus ini dalam jadual kursus, kemudian cari semua rekod yang mengandungi kursus ini dalam jadual pelajar dan ubah suainya. Penggunaan indeks dan pengendali yang fleksibel tidak menjadi masalah.
MongoDB mempertimbangkan dua mod asas: dokumen dan jadual.
Mod dokumen merekodkan rekod ke dalam dokumen, dengan mengambil pilihan kursus pelajar sebagai contoh, ia merekodkan semua kursus yang dipilih oleh pelajar di bawah mod jadual pisah dokumennya adalah seperti pangkalan data hubungan, di mana pelajar dan kursus dipisahkan jadual , dan kemudian buat jadual surat-menyurat antara pelajar dan kursus (pemilihan kursus).
Kelebihan utama dokumen ialah kecekapan membaca yang tinggi MongoDB tidak mempunyai
joint
Jika ia dibahagikan kepada jadual, beberapa pertanyaan akan dibuat untuk setiap pertanyaan yang melibatkan beberapa jadual. Kelemahan utama dokumen tersebut ialah menyusahkan untuk diselenggara Sebagai contoh, jika anda mengubah suai maklumat kursus, anda perlu mencari semua dokumen pelajar yang mengandungi kursus ini dan mengubah suainya satu demi satu. Selain itu, saiz dokumen adalah terhad dan data tidak boleh ditambah selama-lamanya.Kebaikan dan keburukan sub-jadual adalah bertentangan dengan jenis dokumen.
Dalam amalan, anda perlu menimbang pilihan anda Data yang dibaca terutamanya cenderung memilih mod dokumen, dan data dengan kekerapan tulis/ubah suai yang tinggi boleh mempertimbangkan pemisahan jadual. Di samping itu, untuk medan yang boleh meningkatkan data secara tidak terhingga, biasanya perlu mempertimbangkan penyimpanan dalam jadual berasingan.
Biasanya, kedua-duanya digunakan dalam kombinasi, dan maklumat dengan kekerapan bacaan yang lebih tinggi direkodkan dalam dokumen, dan maklumat terperinci lain dibuat secara berasingan. Dalam contoh anda, dua jadual dicipta untuk pelajar dan kursus Maklumat asas pemilihan kursus (seperti kod kursus dan nama) direkodkan di bawah setiap dokumen pelajar, dan kemudian maklumat khusus setiap kursus disimpan dalam jadual kursus.
Setiap kali anda menyenaraikan maklumat pemilihan kursus pelajar, satu pertanyaan boleh menyenaraikan kod dan nama semua pilihan kursus Apabila anda perlu melihat maklumat terperinci kursus tertentu, lakukan pertanyaan lain pada jadual kursus. Ini boleh menyimpan satu pertanyaan berbanding dengan pembahagian jadual lengkap, dan mengurangkan saiz dokumen dan skop pengubahsuaian apabila mengubah suai maklumat kursus berbanding dengan rakaman dokumen lengkap.
Jika anda ingin memadamkan kursus, padamkan dahulu dokumen kursus ini dalam jadual kursus, kemudian cari semua rekod yang mengandungi kursus ini dalam jadual pelajar dan ubah suainya. Penggunaan indeks dan pengendali yang fleksibel tidak menjadi masalah.