Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

php mysql में मैसेजिंग सिस्टम

मुझे लगता है कि आप संदेश सामग्री के लिए अपनी वर्तमान तालिका संरचना रख सकते हैं। अलग-अलग कॉलम या हटाए गए फ़्लैग जोड़ने के बजाय, मेलबॉक्स के लिए एक अलग टेबल रखना आपके लिए बेहतर होगा।

तो आपकी वर्तमान एमबॉक्स तालिका:

id   message    sentby   sentto    created

फिर user_mailboxes के लिए एक और टेबल

id   user    mailbox    message_id

उपयोगकर्ता_मेलबॉक्स तालिका में प्रत्येक उपयोगकर्ता के लिए संदेश लिखते समय आपको कुल तीन प्रविष्टियां करनी होंगी, संदेश तालिका में एक, चालू।

तो आपका एमबॉक्स डेटा इस तरह दिखता है:

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

और user_mailboxes डेटा इस तरह दिखेगा:

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

यह आपको user_mailboxes तालिका के लिए अलग-अलग पंक्तियों को हटाने की अनुमति देता है। यह आपको एक ही समय में एकाधिक उपयोगकर्ताओं को संदेश भेजने की अनुमति देकर भविष्य के ऐड-ऑन की भी अनुमति देगा (प्रत्येक उपयोगकर्ता के लिए एक नई पंक्ति), और यदि आवश्यक हो तो आपको एक से अधिक मेलबॉक्स जोड़ने की अनुमति देता है (इन, आउट, ट्रैश, महत्वपूर्ण , आदि)।

किसी विशेष मेलबॉक्स के लिए उपयोगकर्ता के लिए मेल देखने के लिए, आपको बस एक जॉइन का उपयोग करना होगा

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

जब आप हटाते हैं तो आपको एक क्लीन अप स्क्रिप्ट की आवश्यकता होगी ताकि यह सुनिश्चित किया जा सके कि कोई भी अनाथ संदेश मौजूद नहीं है जो 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. NodeJS MySQL डंप

  2. MySQL में किसी अन्य तालिका में मौजूद पंक्तियों को कैसे दिखाएं?

  3. zsh:कमांड नहीं मिली:mysql

  4. MySQLi का उपयोग करके सिंगल कॉलम मान कैसे प्राप्त करें?

  5. MySQL कार्यक्षेत्र में संबंध कैसे बनाएं