mongodb - mogodb如何进行设计
淡淡烟草味
淡淡烟草味 2017-04-28 09:04:48
0
1
746

想知道大家在做非关系型数据库的项目时是如何进行设计的,以学生选课为例,每个学生可以选择多个课程,每个课程可以让多个学生选择,这种多对多关系要如何设计,如果我要删除一个课程,如何保证数据库的一致性?

淡淡烟草味
淡淡烟草味

membalas semua(1)
仅有的幸福

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan