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

mysql के साथ php में फेसबुक लाइक फ्रेंड्स सिस्टम कैसे बनाएं?

उपयोगकर्ता 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';

उपयोगकर्ता 123 इन उपयोगकर्ताओं के प्रशंसक हैं:

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

स्थिति कॉलम पर अनुक्रमणिका जोड़ना न भूलें।

साथ ही, मुझे यकीन नहीं है कि इस तरह की तालिका इसके लिए आदर्श है।

संपादित करें:

मैं शायद इस तरह का एक स्कीमा चुनूंगा:

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)

जब कोई मित्र अनुरोध करता है, तो मित्र_अनुरोध तालिका में नई पंक्ति जोड़ें। जब अनुरोध प्राप्तकर्ता चुनता है:

  • अनुरोध स्वीकार करने के लिए:मित्र_xref में नई पंक्ति जोड़ें और मित्र_अनुरोध तालिका में 1 को हल करें सेट करें
  • अनुरोध को अस्वीकार करने के लिए:fan_xref में नई पंक्ति जोड़ें और मित्र_अनुरोध तालिका में 1 पर हल करें सेट करें

लेकिन सबसे अच्छा जवाब पाने के लिए इसे mysql, डेटाबेस-डिज़ाइन या कुछ इसी तरह के टैग के तहत पूछना बेहतर होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - एक सेट को कवर करने वाले मान वाले समूहों का चयन करें

  2. एसक्यूएल परिकलित कॉलम के न्यूनतम मूल्य के आधार पर पूरी पंक्ति प्राप्त करें

  3. php / SQL - कई शर्तों के साथ हर 4 नामों के बीच कई शब्द 4 बार प्रिंट करें

  4. MySQL वर्कबेंच ला रहा है... -- डीबी ब्राउज़ नहीं कर सकता

  5. Laravel/PHP:क्रम में संख्याओं के साथ वर्णानुक्रम द्वारा आदेश