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

Bagaimana cara mengubah bentuk relasi banyak-ke-banyak dari SQL ke koleksi mongoDB?

Saya melihat beberapa solusi untuk masalah Anda:

Jarang update

Untuk menghindari penggabungan, yang harus dilakukan di sisi klien dalam database NoSQL, masukkan semuanya ke dalam satu koleksi. Jika Anda tidak sering memperbarui, Anda dapat melakukannya

{
   _id,
   LastAccessDate,
   HasException,
   Account : {
        AccountID,
        UserName,
        Email },
   Device : {
        DeviceID,
        DeviceCode }
}

Ini menghasilkan data duplikat, tetapi jika kinerja (tidak ada gabungan) datang sebelum efisiensi memori, itu mungkin solusi yang cocok untuk Anda. Karena data disimpan beberapa kali, pembaruan lebih menuntut untuk server. Yaitu. memperbarui alamat Email akan terlihat seperti

db.myColl.update({"Account.UserName" : "User ToUpdate"}, {"$set" : {"Account.Email" : "[email protected]"} });

Karena Anda tidak memerlukan AccountID dan DeviceID untuk bergabung lagi, Anda juga dapat menghapus kedua bidang ini.

Sering diperbarui

Saat Anda sering melakukan pembaruan, alih-alih menyematkan, Anda dapat menggunakan Referensi. Saya pikir Anda harus menyelesaikannya di sisi klien. Anda kemudian memiliki tiga koleksi:

Akun:

{
  _id,
  UserName,
  Email
}

Perangkat:

{
  _id,
  DeviceCode
}

Asosiasi:

{
  _id,
  account : {
        "$ref" : "Account",
        "$id" : ... }
  device : {
        "$ref" : "Device",
        "$id" : ... }
}

Anda tidak memiliki duplikasi dengan cara ini, tetapi Anda harus berurusan dengan referensi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Masalah Koneksi MongoDB Intermiten:Upaya telah dilakukan untuk mengakses soket dengan cara yang dilarang oleh izin aksesnya

  2. MongoDB:Bagaimana cara merepresentasikan diagram skema dalam tesis?

  3. Apakah penjelasan Wikipedia tentang pengurangan Map Reduce salah?

  4. Peta PHP MongoDB mengurangi kegagalan pernyataan db

  5. kesalahan TS2688:Tidak dapat menemukan file definisi tipe untuk 'bson'