यहां आपके लिए एक सामान्य लेआउट है, जैसा आपने उल्लेख किया है, तीन टेबल बनाएं, मैंने नीचे एक उदाहरण के रूप में रेखांकित किया है
[टेबल्स]
- उपयोगकर्ता
- अनुयायियों
- पोस्ट
उपयोगकर्ता तालिका में आपके पास कम से कम उपयोगकर्ता आईडी (ऑटो इंक्रीमेंटेड वैल्यू / प्राइमरी की) जैसे कॉलम होने चाहिए।
फॉलोअर्स टेबल में यूजर आईडी जैसा कुछ होना चाहिए जो यूजर टेबल यूजर आईडी से मेल खाएगा, एक फॉलोइड कॉलम जिसमें यूजर टेबल से फॉलोअर के लिए आईडी # भी होगी।
फिर अपनी पोस्ट टेबल के लिए आप उपयोगकर्ता आईडी भी रखना चाहेंगे ताकि जब प्रत्येक पोस्ट बनाया जाए तो उसके पास उपयोगकर्ता तालिका से आईडी होगी।
फिर आपको कुछ ऐसा करना होगा:
SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC
अब यह वास्तव में इस बात पर निर्भर करता है कि आप इसे समझने के लिए उपयोगकर्ता आईडी कैसे प्राप्त कर रहे हैं। यदि आप फेसबुक जैसी किसी चीज़ के समान लॉग इन करने के बाद सत्र का उपयोग कर उपयोगकर्ता आईडी पास कर रहे हैं, तो आप उपयोगकर्ता आईडी =### को उपयोगकर्ता आईडी =".$ _ सत्र ['userid'] जैसे कुछ में बदल सकते हैं।" लेकिन फिर से यह वास्तव में इस बात पर निर्भर करता है कि आप उपयोगकर्ता आईडी कैसे पास करते हैं लेकिन उपरोक्त आपको कम से कम कुछ हद तक शुरू करना चाहिए।
उपयोगकर्ता आईडी, फॉलोइड कॉलम पर इंडेक्स डालना सुनिश्चित करें ताकि जब टेबल बड़ी हो जाए तो वह जल्दी से जुड़ जाए।