Apakah mongodb mendukung batasan kunci asing
Sebelum menjelajahi skema yang lebih lanjut dalam buku ini, penting untuk meninjau kembali dasar-dasar skema. Dalam bab ini kita akan mengeksplorasi hubungan dasar dari database relasional tradisional dan bagaimana hubungannya dengan model dokumen di MongoDB Show Kita akan mulai dengan melihat One-To-One (1. 1) hubungan kemudian beralih ke One-To-Many (1. N) dan akhirnya Many-To-Many (N. M) Satu Ke Satu (1. 1)1. 1 hubungan menggambarkan hubungan antara dua entitas. Dalam hal ini Penulis memiliki hubungan Alamat tunggal di mana seorang Penulis tinggal di satu Alamat dan Alamat hanya berisi satu Penulis 1. 1 hubungan dapat dimodelkan dalam dua cara menggunakan MongoDB. Yang pertama adalah menyematkan relasi sebagai dokumen, yang kedua sebagai tautan ke dokumen dalam koleksi terpisah. Mari kita lihat kedua cara memodelkan hubungan satu ke satu menggunakan dua dokumen berikut Model
Angka. Contoh dokumen Pengguna _Angka. Contoh dokumen Alamat MenyematkanPendekatan pertama adalah menyematkan dokumen Alamat sebagai dokumen yang disematkan di dokumen Pengguna
Angka. Contoh dokumen Pengguna dengan Alamat Tertanam Kekuatan menyematkan dokumen Alamat langsung di dokumen Pengguna adalah bahwa kita dapat mengambil pengguna dan alamatnya dalam operasi baca tunggal dibandingkan harus terlebih dahulu membaca dokumen pengguna dan kemudian dokumen alamat untuk pengguna tertentu tersebut. Karena alamat memiliki kedekatan yang kuat dengan dokumen pengguna, penyematan masuk akal di sini MenautkanPendekatan kedua adalah menautkan alamat dan dokumen pengguna menggunakan 0 _Angka. Contoh dokumen Pengguna
Angka. Contoh dokumen Alamat dengan Kunci Asing Ini mirip dengan bagaimana database relasional tradisional akan menyimpan data. Penting untuk dicatat bahwa MongoDB tidak menerapkan batasan kunci asing apa pun sehingga relasi hanya ada sebagai bagian dari skema level aplikasi penting 1Dalam hubungan satu ke satu Penyematan adalah cara yang lebih disukai untuk memodelkan hubungan karena lebih efisien untuk mengambil dokumen Satu Ke Banyak (1. N)1. Relasi N menggambarkan relasi dimana satu pihak dapat memiliki lebih dari satu relasi sedangkan relasi sebaliknya hanya dapat satu sisi. Contohnya adalah Blog di mana sebuah blog mungkin memiliki banyak Komentar tetapi sebuah Komentar hanya terkait dengan satu Blog 1. Hubungan N dapat dimodelkan dalam beberapa cara berbeda menggunakan MongoDB. Dalam bab ini kita akan mengeksplorasi tiga cara berbeda untuk memodelkan 1. hubungan N. Yang pertama adalah penyematan, yang kedua adalah penautan dan yang ketiga adalah strategi pengelompokan yang berguna untuk kasus seperti deret waktu. Mari gunakan model 2 dan 3Model _Angka. Contoh dokumen Posting Blog Posting Blog adalah satu dokumen yang menjelaskan satu posting blog tertentu
Angka. Beberapa contoh dokumen Komentar Untuk setiap Posting Blog kita dapat memiliki satu atau lebih Komentar MenyematkanPendekatan pertama adalah menyematkan Komentar di 2
Angka. Posting Blog dengan dokumen yang disematkan Penyematan _5 di posting Blog berarti kita dapat dengan mudah mengambil semua komentar milik posting Blog tertentu. Menambahkan komentar baru semudah menambahkan dokumen komentar baru ke akhir larik 5Namun, ada tiga masalah potensial yang terkait dengan pendekatan ini yang harus diwaspadai
pentingPenting untuk dicatat bahwa ini hanya penting untuk lalu lintas penulisan yang tinggi dan mungkin tidak menjadi masalah untuk aplikasi yang lebih kecil. Apa yang mungkin tidak dapat diterima untuk aplikasi volume tulis tinggi mungkin dapat ditoleransi untuk aplikasi dengan beban tulis rendah
MenautkanPendekatan kedua adalah menautkan komentar ke _2 menggunakan kunci 1 yang lebih tradisional
Angka. Contoh dokumen Posting Blog
Angka. Beberapa contoh dokumen Komentar dengan Kunci Asing Keuntungan model ini adalah bahwa komentar tambahan tidak akan menumbuhkan dokumen 2 asli, sehingga kecil kemungkinan aplikasi akan berjalan dalam ukuran dokumen maksimum 8. Juga jauh lebih mudah untuk mengembalikan komentar dengan halaman karena aplikasi dapat memotong dan memotong komentar dengan lebih mudah. Sisi negatifnya jika kita memiliki 1000 komentar pada posting blog, kita perlu mengambil semua 1000 dokumen yang menyebabkan banyak pembacaan dari databaseBucketPendekatan ketiga adalah gabungan dari dua pendekatan di atas. Pada dasarnya, mencoba untuk menyeimbangkan kekakuan dari strategi embedding dengan fleksibilitas dari strategi linking. Untuk contoh ini, kami akan membagi komentar ke dalam keranjang dengan maksimal 50 komentar di setiap keranjang
Angka. Contoh dokumen Posting Blog _1Angka. Beberapa contoh keranjang Komentar Manfaat utama menggunakan bucket dalam hal ini adalah kita dapat melakukan sekali baca untuk mengambil 50 komentar sekaligus, memungkinkan paginasi yang efisien penting _4Saat Anda memiliki kemungkinan untuk membagi dokumen Anda menjadi beberapa kumpulan rahasia, masuk akal untuk mempertimbangkan pengelompokan untuk mempercepat pengambilan dokumen Kasus umum di mana pengelompokan sesuai adalah seperti pengelompokan data menurut jam, hari, atau jumlah entri pada halaman (seperti paginasi komentar) Banyak-ke-banyak (N. M)sebuah N. Relasi M adalah contoh relasi antara dua entitas dimana keduanya mungkin memiliki banyak relasi antara satu sama lain. Contohnya mungkin Buku yang ditulis oleh banyak Penulis. Pada saat yang sama seorang Penulis mungkin telah menulis banyak Buku N. M hubungan dimodelkan dalam database relasional dengan menggunakan tabel gabungan. Contoh yang baik adalah hubungan antara buku dan penulis
Ini mengarah ke N. M hubungan antara penulis buku. Mari kita lihat bagaimana ini bisa dimodelkan Penyematan Dua ArahMenyematkan buku dalam dokumen Penulis ModelDi _5 kami akan menyertakan Buku 6 di bawah bidang 7 _2Angka. Beberapa contoh dokumen Penulis Mencerminkan dokumen Penulis, untuk setiap Buku kami menyertakan Penulis 6 di bawah bidang Penulis _3Angka. Beberapa contoh dokumen Buku Kueri _4Contoh 1. Ambil buku oleh penulis tertentu _5Contoh 2. Ambil penulis dari buku tertentu Seperti yang bisa dilihat, kita harus melakukan dua kueri di kedua arah. Yang pertama adalah menemukan penulis atau bukunya dan yang kedua adalah melakukan kueri $in untuk menemukan buku atau penulisnya penting _9Mari kita ambil kategori _0 yang mungkin memiliki ribuan buku di dalamnya dan dengan banyak buku baru yang ditambahkan dan dihapus secara konsisten. Ini membuatnya tidak praktis untuk menyematkan semua buku dalam dokumen kategori. Namun, setiap buku dapat dengan mudah memiliki kategori yang disematkan di dalamnya, karena tingkat perubahan kategori untuk buku tertentu mungkin sangat rendah.Dalam hal ini kita harus mempertimbangkan _1 sebagai strategiPenyematan Satu ArahStrategi Penyematan Satu Arah memilih untuk mengoptimalkan kinerja baca N. M hubungan dengan menyematkan referensi di satu sisi hubungan. Contohnya mungkin di mana beberapa buku termasuk dalam beberapa kategori tetapi beberapa kategori memiliki banyak buku. Mari kita lihat sebuah contoh, menarik kategori ke dalam dokumen terpisah Model _6Angka. Dokumen Kategori _7Angka. Buku dengan Kunci Asing untuk Kategori Alasan kami memilih untuk menyematkan semua referensi kategori dalam buku adalah karena ada lebih banyak buku dalam kategori drama daripada kategori dalam sebuah buku. Jika seseorang menyematkan buku dalam dokumen kategori, mudah untuk memperkirakan bahwa seseorang dapat memecahkan ukuran dokumen maksimal 16MB untuk kategori luas tertentu Kueri _8Contoh 3. Ambil kategori untuk buku tertentu _9Contoh 4. Ambil buku untuk kategori tertentu tip 2Tetapkan ukuran maksimum _3 dan ukuran 4. Misalnya jika _3 maksimal 3 kategori untuk sebuah buku dan 4 maksimal 500000 buku dalam satu kategori, Anda harus memilih Penyematan Satu Arah. Jika _3 maksimal 3 dan 4 maksimal 5 maka Penyematan Dua Arah mungkin bekerja dengan baik
Bisakah Anda memiliki kunci asing di MongoDB?Referensi MongoDB
. Kunci asing dapat digunakan dalam Database Relasional untuk memvisualisasikan data dari beberapa koleksi secara bersamaan. MongoDB doesn't work with the concept of foreign keys. The foreign keys can be used in the Relational Databases for visualizing data from multiple collections simultaneously.
Apakah MongoDB mendukung kunci utamaTidak. MongoDB tidak mendukung hubungan primary key-foreign key . MongoDB memiliki bidang kunci _id untuk setiap dokumen yang secara unik mengidentifikasi dokumen tertentu.
Bisakah kita memiliki kendala di MongoDB?Banyak database dokumen memungkinkan Anda untuk menentukan aturan yang menentukan bagaimana bagian dari data dokumen Anda harus disusun sambil tetap menawarkan kebebasan untuk mengubah struktur ini jika diperlukan. MongoDB memiliki fitur yang disebut validasi skema yang memungkinkan Anda menerapkan batasan pada struktur dokumen Anda .
Apakah NoSQL mendukung kunci asing?Database NoSQL tidak mendukung kunci asing atau gabungan dan tidak memiliki konsep integritas referensial. Mari jelajahi berbagai jenis database NoSQL dan waktu yang tepat untuk menggunakannya. |