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

किसी उपयोगकर्ता को सूची में कहीं भी सम्मिलित करने की अनुमति कैसे दें?

एक कोड दृष्टिकोण से सबसे सरल तरीका एक लिंक्ड-लिस्ट शैली का उपयोग करना है, जहां आपके पास ऑर्डर वैल्यू के बजाय अगला तत्व आईडी है। यह छोटी सूचियों में कम उपयोगी है, लेकिन जब आप सूची का आकार बढ़ाना शुरू करते हैं, तो यह अपडेट/चाल/निष्कासन को अधिक साफ-सुथरा बनाता है और संभवतः 1 ऑर्डर परिवर्तन करने के लिए हजारों टुपल्स को अपडेट करने से रोकता है।

++ मेरे पास सटीक कोड उदाहरण नहीं है, लेकिन आप उपयोगकर्ता की सभी सूची के लिए कॉल करेंगे

SELECT Posts.id, Posts.next, Posts.content, User.firstPost FROM db.posts AS Posts 
JOIN db.user as User ON Posts.ownerid = User.id 
WHERE User.id='123' AND Posts.active = 1;

यह एक एकल उपयोगकर्ता की सभी पोस्ट प्राप्त करेगा, और फिर आपके पास एक फ़ील्ड होगा जिसमें अगली पोस्ट की आईडी होगी। शुरू करने के लिए आपको पहली पोस्ट की पहचान करने के लिए एक कुंजी की आवश्यकता होगी (उपयोगकर्ता की जानकारी में पहली पोस्ट की आईडी स्टोर करें)। पहली पोस्ट को खींचने के बाद, आप उसका 'अगला' मान लेते हैं, और अगली पोस्ट की पहचान करने के लिए उसका उपयोग करते हैं।

यह एक छोटी सूची के लिए थोड़ा पागल लगता है, लेकिन 1000 पोस्ट वाले उपयोगकर्ता के बारे में सोचें। यदि उन्हें दूसरे स्थान पर 1 पद जोड़ना है। एक पारंपरिक संख्यात्मक क्रम प्रणाली में, अब आपको 999 अन्य पंक्तियों को +1 अपडेट के साथ अपडेट करने की आवश्यकता होगी। इस समाधान के साथ, यदि आपको दूसरी स्थिति में कोई पोस्ट सम्मिलित करने की आवश्यकता है, तो आप बस पहली पोस्ट को अगला मान प्राप्त करने के लिए क्वेरी करते हैं। एक बार जब आप इसे प्राप्त कर लेते हैं, तो आप इसे नई दूसरी पोस्ट के मूल्य के रूप में बदलते हैं, और दूसरी पोस्ट का अगला मान मूल रूप से पहले वाले के पास सेट करते हैं।

[1st Post] --Next---> [2nd Post] --Next---> [3rd Post]

डालने के बाद:

[1st Post] -.                          .--> [2nd Post] --Next---> [3rd Post]
            `--Next--> [New 2nd Post]--`



  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. mysql_fetch_assoc ():आपूर्ति किया गया तर्क php . में मान्य MySQL परिणाम संसाधन नहीं है

  3. मैसकल रिकर्सन?

  4. MYSQL में एक तालिका में यादृच्छिक संख्या सम्मिलित करना

  5. यदि MySQL में फ़ील्ड रिक्त है तो 0 लौटें