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

Cara membuat Facebook like friends system di php dengan mysql

Daftar teman pengguna 123:

SELECT u.* FROM users u INNER JOIN friend_requests f ON f.user_id = u.id WHERE f.user_id = 123 AND status = 'accepted';

Pengguna 123 adalah penggemar pengguna ini:

SELECT u.* FROM users u INNER JOIN friend_requests f ON f.user_id = u.id WHERE f.friend_id = 123 AND status = 'waiting';

Jangan lupa tambahkan indeks pada kolom status.

Juga, saya tidak yakin meja seperti ini ideal untuk ini.

EDIT:

Saya mungkin akan memilih skema seperti ini:

friend_request
    request_from (foreign key to users.user_id)
    request_to (foreign key to users.user_id)
    resolved (boolean 1 or 0, default is 0)

friend_xref
    friend (foreign key to users.user_id)
    is_friend_with (foreign key to users_user_id)

fan_xref
    user (foreign key to users.user_id)
    is_fan_of (foreign key to users.user_id)

Ketika seseorang membuat permintaan pertemanan, tambahkan baris baru ke tabel friend_request. Saat penerima permintaan memilih untuk:

  • untuk menerima permintaan:tambahkan baris baru ke friend_xref dan setel diselesaikan ke 1 di tabel friend_request
  • untuk menolak permintaan:tambahkan baris baru ke fan_xref dan setel diselesaikan ke 1 di tabel permintaan_teman

Tetapi akan lebih baik untuk menanyakan ini di bawah mysql, database-design atau beberapa tag serupa untuk mendapatkan jawaban terbaik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Algoritma Untuk Memilih Tempat Paling Populer dari Database

  2. Menjalankan beberapa kueri asli sekaligus

  3. Kesalahan koneksi Python SQL (2006, 'kesalahan koneksi SSL:SSL_CTX_set_tmp_dh gagal')

  4. PDO “Pengecualian tidak tertangkap 'PDOException' .. Tidak dapat mengeksekusi kueri saat kueri tanpa buffer lainnya aktif. Pertimbangkan untuk menggunakan PDOStatement::fetchAll().”

  5. Praktik Terbaik mysqldump:Bagian 2 – Panduan Migrasi