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

Sistem pesan di php mysql

Saya pikir Anda dapat menyimpan struktur tabel Anda saat ini untuk konten pesan. Daripada menambahkan kolom terpisah atau bendera yang dihapus, Anda sebaiknya memiliki tabel terpisah untuk kotak surat.

Jadi tabel mbox Anda saat ini:

id   message    sentby   sentto    created

Kemudian tabel lain untuk kotak surat_pengguna

id   user    mailbox    message_id

Anda harus melakukan tiga penyisipan total saat menulis pesan, satu ke tabel pesan, untuk setiap pengguna di tabel user_mailboxes.

Jadi data mbox Anda terlihat seperti ini:

id   message     sentby    sentto    created 
1    Hi There    UserA     UserB     2015-01-26
2    Hello Back  UserB     UserA     2015-01-26

Dan data user_mailboxes akan terlihat seperti ini:

id   user        mailbox   message_id
1    UserA       Out       1
2    UserB       In        1
3    UserB       Out       2
4    UserA       In        2

Ini memungkinkan Anda untuk menghapus baris individual untuk tabel user_mailboxes. Ini juga akan memungkinkan pengaya di masa mendatang dengan memungkinkan Anda mengirim pesan ke beberapa pengguna secara bersamaan (Baris baru untuk setiap pengguna), dan memungkinkan Anda untuk menambahkan lebih dari satu kotak surat jika diperlukan (Masuk, Keluar, Sampah, Penting , dll).

Untuk mencari email untuk pengguna untuk kotak surat tertentu, Anda cukup menggunakan bergabung

SELECT * FROM user_mailboxes LEFT JOIN mbox ON mbox.id = user_mailboxes.message_id WHERE user_mailboxes.user = "$user" AND user_mailboxes.mailbox = "Out";

Anda memerlukan skrip pembersihan saat Anda menghapus untuk memastikan tidak ada pesan yatim piatu yang tidak ada di tabel user_mailboxes.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PILIH * DARI beberapa tabel. MySQL

  2. Bagaimana Cara Membangun Kembali Budak MySQL yang Tidak Konsisten?

  3. Pelanggaran batasan integritas:1452 Tidak dapat menambah atau memperbarui baris anak:

  4. Query MySQL Umum Teratas

  5. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver selama Runtime (Eclipse / maven / Tomcat)