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

Banyak-ke-banyak di meja yang sama

Jika hubungan yang Anda gambarkan simetris, seperti dalam "Bob adalah teman Joe" berarti "Joe juga teman Bob", maka Anda dapat memastikan dalam kode Anda bahwa yang lebih kecil dari 2 ID pengguna masuk kolom pertama, dan yang lebih besar masuk ke kolom kedua. Batasan ini cukup memastikan bahwa catatan di tabel pencarian Anda akan unik. Ini juga berarti bahwa saat Anda melakukan pencarian, Anda biasanya harus mencari di kedua kolom.

Misalnya, jika Anda mencoba mendapatkan semua teman Bob, Anda harus menanyakan catatan yang memiliki ID Bob di salah satu kolom. Ini menghasilkan sedikit lebih banyak kode dan mungkin berdampak pada kinerja.

Jika hubungannya bisa asimetris, seperti dalam "Bob adalah teman Joe" tidak berarti "Joe juga teman Bob", maka Anda memerlukan 2 entri untuk setiap pasangan pengguna:Bob - Joe dan Joe - Bob. Ini berarti bahwa tabel pencarian Anda akan berisi entri dua kali lebih banyak dan juga situs Anda sangat ramah penguntit :D Tentu saja, Anda masih dapat memilih untuk menerapkan sistem ini meskipun hubungan Anda simetris.

Dengan menggunakan metode ini, jika Anda ingin mendapatkan semua teman Bob, Anda hanya perlu memilih catatan dengan ID Bob di kolom pertama. Ada kemungkinan bahwa ini berarti pencarian lebih cepat dan lebih sedikit kode untuk Anda tulis, tetapi sekali lagi, ini berarti Anda menggunakan lebih banyak ruang di database Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat koneksi database saya aman?

  2. MySQL mendapatkan semua baris yang terpengaruh untuk beberapa pernyataan dalam satu kueri

  3. Bagaimana cara menghapus semua karakter numerik non-alfa dari string di MySQL?

  4. Pilihan MySQL Round Robin

  5. bagaimana cara membersihkan file konfigurasi cache Laravel Bootstrap?