MySQL के साथ यह निश्चित रूप से संभव है, लेकिन मुझे लगता है कि आप इसके बारे में अजीब तरीके से जा रहे हैं। मैं तालिकाओं को निम्नानुसार संरचित करके शुरू करूंगा:
TABLE Users ( userId, username, location )
TABLE Interests( interestId, hobby )
TABLE UserInterests( userId, interestId, level )
जब कोई उपयोगकर्ता कोई रुचि जोड़ता है, यदि उसे पहले नहीं जोड़ा गया है, तो आप उसे Interests
में जोड़ देते हैं तालिका, और फिर इसे UserInterests
. में जोड़ें मेज़। जब आप समान रुचियों वाले आस-पास के अन्य लोगों की जांच करना चाहते हैं, तो आप बस UserInterests
से पूछ सकते हैं समान रुचियों वाले अन्य लोगों के लिए तालिका, जिसमें आपके लिए वह सारी जानकारी पहले से ही है:
SELECT DISTINCT userId
FROM UserInterests
WHERE interestId IN (
SELECT interestId
FROM UserInterests
WHERE userId = $JoesID
)
यह संभवत:उपश्रेणियों के बिना अधिक सुरुचिपूर्ण ढंग से किया जा सकता है, लेकिन अब मैंने यही सोचा है।