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

Bagaimana Anda memodelkan pelanggan> pesanan> pesanan> produk dalam database NoSql?

Pertimbangan penting saat merancang skema untuk MongoDB bukanlah data Anda, tetapi bagaimana Anda akan menggunakannya. Tanpa mengetahui jenis baca dan tulis apa yang akan Anda lakukan (dan seberapa baik kinerjanya), akan sulit untuk merancang skema "optimal".

Ada beberapa pedoman dasar yang dapat Anda pertimbangkan untuk menghindari masalah. Salah satunya adalah menghindari mendesain dokumen yang terus berkembang tanpa batas. Itu berarti Anda tidak boleh menyematkan pesanan ke dalam dokumen pelanggan. Aturan lain adalah bahwa hal-hal yang tidak "menarik" dengan sendirinya (atau tidak ada dengan sendirinya) mungkin lebih baik disematkan. Hal ini menunjukkan bahwa orderItems tidak layak untuk dikoleksi sendiri dan harus diperlakukan sebagai atribut pesanan (sebenarnya memang demikian).

Latihan yang tepat ini tercakup dalam pelatihan pengembang MongoDB, menjadi contoh khas desain skema.

Intinya adalah Anda harus memiliki tiga koleksi:

Produk
Pelanggan
Pesanan

Pesanan akan mereferensikan pelanggan (secara opsional mendenormalisasi beberapa informasi dari pengumpulan pelanggan) dan mereka akan mereferensikan produk (dalam susunan item pesanan yang akan dikandungnya).

Koleksi lebih lanjut, dan bidang eksak di semua koleksi ini bergantung pada kasus penggunaan spesifik Anda, tetapi saya tidak dapat melihat skenario yang layak untuk memiliki koleksi yang lebih sedikit daripada ketiganya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apa itu mode ketat MongoDB dan apakah itu ide yang bagus untuk digunakan?

  2. Bagaimana cara menggunakan kueri luwak variabel?

  3. MongoDB SpiderMonkey tidak mengerti UTF-8

  4. cara mendeteksi apakah unduhan file berhasil dari sisi klien di mean/angular js

  5. Mongo - kueri, Dokumen yang disematkan tidak cocok kecuali notasi titik