मुझे पूरा यकीन है कि फेसबुक "जैसे" जानकारी संग्रहीत नहीं करता है, जैसा कि कुछ अन्य ने आरडीबीएमएस का उपयोग करके इसका सुझाव दिया है। लाखों उपयोगकर्ताओं और संभवतः हजारों लोगों के साथ, हम यहां शामिल होने के लिए हजारों पंक्तियों को देख रहे हैं जो प्रदर्शन को प्रभावित करेंगे।
यहां सबसे अच्छा तरीका एक ही पंक्ति में सभी "पसंद" को जोड़ना है। उदाहरण के लिए, टेक्स्ट डेटाटाइप के user_like_id कॉलम वाली एक तालिका। फिर सभी आईडी जो पोस्ट पसंद करते हैं उन्हें जोड़ा जाता है। इस मामले में, आप केवल एक पंक्ति पूछते हैं और आपको सबकुछ मिल गया है। यह तालिकाओं में शामिल होने और गणना करने से बहुत तेज होगा।
संपादित करें: मैं हाल ही में इस साइट पर नहीं रहा हूं और मुझे पता चला कि यह उत्तर कम हो गया है। खैर, यहां एक example post with like count and their avatars है। यह मेरा डिज़ाइन है जहां मैंने अभी लागू किया है जिसके बारे में मैं बात कर रहा हूं।
यहां दो घटक हैं 1.) एक्सआरईएफ तालिका और 2.) JSON ऑब्जेक्ट।
पसंद अभी भी एक एक्सआरईएफ तालिका पर संग्रहीत हैं। लेकिन साथ ही, डेटा JSON ऑब्जेक्ट पर जोड़ा गया है और पोस्ट टेबल पर टेक्स्ट कॉलम पर संग्रहीत किया गया है।
मैंने जेएसओएन के रूप में टेक्स्ट कॉलम पर पसंद की जानकारी क्यों संग्रहीत की? इसलिए पसंद के लिए डीबी लुकअप/जॉइन करने की कोई ज़रूरत नहीं है। अगर कोई पोस्ट के विपरीत है, तो JSON ऑब्जेक्ट अभी अपडेट किया गया है।
अब मुझे नहीं पता कि यह उत्तर यहां कुछ उपयोगकर्ताओं द्वारा क्यों दिया गया है। यह उत्तर त्वरित डेटा पुनर्प्राप्ति प्रदान करता है। यह नोएसक्यूएल दृष्टिकोण के नजदीक है, इस प्रकार एफबी एक्सेस डेटा कैसे है। इस मामले में, पसंद की जानकारी प्राप्त करने के लिए अतिरिक्त जॉइन/लुकअप की आवश्यकता नहीं है।
और यहां वह तालिका है जो पसंद रखती है। यह उपयोगकर्ता और आइटम तालिका के बीच बस एक साधारण एक्सआरईएफ मैपिंग है।
यह एक समाधान हो सकता है, मुझे लगता है कि समस्या यह है कि "हर चीज" एक "वस्तु" होनी चाहिए क्योंकि यदि आपके पास कोई सारणी नहीं है जो कोई आइटम नहीं है और किसी दिन आप भी इसके लिए चाहते हैं? मुझे लगता है कि कभी-कभी सरल बेहतर होता है, विपरीत विरासत क्यों नहीं बनाते? जैसे माता-पिता है और आपके पास एक एफके के साथ एक like_for_status तालिका है, और like_for_photo, आदि। आप इसे किसी भी तालिका में आसानी से बढ़ा सकते हैं, और आपके प्रश्न भी तेज़ हैं। – Enrique
+1, हालांकि मुझे लगता है कि आपका मतलब है ** तालिका प्रति प्रकार ** या टीपीटी। – Yuck
@ यक: हां, टीपीटी (टेबल-पे-पदानुक्रम के बजाए), हालांकि टीपीटी और टीपीएच, जहां तक मुझे पता है, एंटीटी फ्रेमवर्क लेक्सिकॉन का हिस्सा अधिक सामान्य रूप से एसक्यूएल होने के बजाय। –