Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara memodelkan hubungan banyak ke banyak di MongoDB (untuk pengguna MySQL)

Pertanyaan bagus. Pertama-tama saya akan menguraikan sedikit tentang cara kerja hubungan N:N, lalu saya akan menjelaskan secara rinci setiap poin-poin Anda.

N:N di MySQL biasanya Anda memiliki tabel pivot yang menghubungkan antara pengguna dan minat Anda (tabel minat_pengguna). Di mongo Anda melakukan ini sedikit berbeda. Anda masih memiliki koleksi pengguna dan minat, namun sekarang, Anda menyimpan daftar kunci di bawah minat untuk pengguna. JADI sesuatu seperti ini:

User Collection {
      "name":"Josh",
      "user":"jsmith",
      "interests":[
           {
            "_id":12345,
            "rating":"like"
           },
           {..}..
      ]
}

Dengan menyimpan minat Anda dalam daftar yang dikunci di tabel minat Anda, Anda dapat melakukan setiap tindakan yang Anda perlukan. Jika Anda ingin melakukan kueri, Anda akan melakukannya berdasarkan ID yang ada di tabel minat, lalu lakukan kueri menggunakan $in modifier .

Sekarang untuk koleksi minat Anda, saya akan melakukan hal berikut:

User Interest {
      "_id":objectId
      "label":"Swimming",
      "count":intValue
}

Saat menambahkan minat ke dokumen pengguna, variabel jumlah kemudian akan bergantung pada definisi peringkat Anda. Jika Anda menyimpan peringkat Anda di area terpisah (atau dalam logika), maka nilai yang Anda tetapkan padanya akan menjadi apa yang Anda hubungkan dengan nilai int yang diminati. IE:Pengguna menilai itu meh (yang memiliki nilai 1) maka Anda akan menambahkan 1 ke nilai hitungan.

Semoga ini bermanfaat dan setidaknya memunculkan beberapa ide lain tentang cara menyusunnya!

Semoga berhasil, ingat MONGO LUAR BIASA.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Mysqli tidak mengembalikan baris, sementara kueri SQL manual mengembalikan hasil

  2. peringatan php mysql_fetch_assoc

  3. Bagaimana cara membuat kueri mysql terus diperbarui di PHP?

  4. Highchart- Menggunakan PHP, MYSQL dan jQuery.get untuk mengurai data

  5. Unggah banyak gambar dengan PHP hanya menyimpan satu jalur file ke Database MySQL