MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Praktik terbaik NoSQL

Saya pikir saat ini, seluruh ide penyimpanan data NoSQL dan konsep database dokumen sangat baru dan berbeda dari ide-ide mapan yang mendorong penyimpanan relasional sehingga saat ini sangat sedikit (jika ada) praktik terbaik.

Kami tahu pada titik ini bahwa aturan untuk menyimpan data Anda dalam katakanlah CouchDB (atau database dokumen lainnya) agak berbeda dengan aturan relasional. Sebagai contoh, cukup banyak fakta bahwa normalisasi dan membidik 3NF bukanlah sesuatu yang harus diperjuangkan. Salah satu contoh umum adalah blog sederhana.

Di toko relasional, Anda akan memiliki tabel masing-masing untuk "Postingan", "Komentar" dan "Penulis". Setiap Penulis akan memiliki banyak Postingan, dan setiap Posting akan memiliki banyak Komentar. Ini adalah model yang bekerja cukup baik, dan memetakan dengan baik pada DB relasional apa pun. Namun, menyimpan data yang sama dalam docDB kemungkinan besar akan agak berbeda. Anda mungkin memiliki sesuatu seperti kumpulan dokumen Post, yang masing-masing akan memiliki Penulis sendiri dan kumpulan Komentar yang tertanam di dalamnya. Tentu saja itu mungkin bukan satu-satunya cara Anda dapat melakukannya, dan ini agak kompromi (sekarang kueri untuk satu posting cepat - Anda hanya melakukan satu operasi dan mendapatkan semuanya kembali), tetapi Anda tidak memiliki cara untuk mempertahankan hubungan antara penulis dan posting (karena semuanya menjadi bagian dari dokumen posting).

Saya juga telah melihat contoh yang menggunakan atribut "type" (dalam contoh CouchDB). Tentu, itu terdengar seperti pendekatan yang layak. Apakah itu yang terbaik? Aku tidak punya petunjuk. Tentu saja di MongoDB Anda akan menggunakan koleksi terpisah dalam database, membuat atribut tipe menjadi tidak masuk akal. Namun di CouchDB... mungkin itu adalah terbaik. Alternatif lain? Pisahkan database untuk setiap jenis dokumen? Ini sepertinya agak gila, jadi saya akan condong ke solusi "ketik" sendiri. Tapi itu hanya aku. Mungkin ada yang lebih baik.

Saya menyadari bahwa saya telah mengoceh sedikit di sini dan mengatakan sangat sedikit, kemungkinan besar tidak ada yang belum Anda ketahui. Maksud saya adalah ini - saya pikir terserah kita untuk bereksperimen dengan alat yang kita punya dan data yang kita kerjakan dan seiring waktu ide-ide bagus akan menyebar dan menjadi praktik terbaik. Saya hanya berpikir Anda meminta sedikit terlalu awal dalam permainan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dapatkan data antara dua tanggal mongo

  2. cara membuat objek mongoDB di java

  3. Cara mengambil kunci berbeda di dalam objek di MongoDB

  4. Masukkan Kamus ke MongoDB dengan c# driver

  5. Gunakan agregasi MongoDB untuk menemukan persimpangan set dari dua set dalam dokumen yang sama