में "सोशल-फीड" डिज़ाइन करना यह प्रश्न किसी भी दस्तावेज़ आधारित NoSQL डेटाबेस के लिए प्रासंगिक हो सकता है।डायनेमोडीबी
मैं कुछ रुचि विशिष्ट सोशल नेटवर्क बना रहा हूं और स्केलेबिलिटी और नो-दर्द-प्रशासन कारकों के कारण डायनेमो डीबी के साथ जाने का फैसला किया है। डेटाबेस में केवल दो मुख्य इकाइयां हैं: उपयोगकर्ता और पोस्ट। आम के लिए
आवश्यकता प्रश्नों बहुत सरल कर रहे हैं:
- होम फ़ीड (लोगों की फ़ीड मेरा अनुसरण कर)
- मेरे/उपयोगकर्ता फ़ीड (मेरा फ़ीड, या विशिष्ट उपयोगकर्ता फ़ीड)
- उपयोगकर्ता की सूची मैं/उपयोगकर्ता पीछा
- अनुसरणकर्ताओं की सूची
यहाँ एक डेटाबेस है योजना मैं अब तक के साथ आते हैं (कथा: __thisIsHashKey
और _thisIsRangeKey
):
timeline = { // post
__usarname:"totocaster",
_date:"1245678901345",
record_type:"collection",
items: ["2d931510-d99f-494a-8c67-87feb05e1594","2d931510-d99f-494a-8c67-87feb05e1594","2d931510-d99f-494a-8c67-87feb05e1594","2d931510-d99f-494a-8c67-87feb05e1594","2d931510-d99f-494a-8c67-87feb05e1594"],
number_of_likes:123,
description:"Hello, this is cool"
}
timeline = { // new follower
__usarname:"totocaster",
_date:"1245678901345",
type:"follow",
follower:"tamuna123"
}
timeline = { // new like
__usarname:"totocaster",
_date:"1245678901345",
record_type:"like",
liker:"tamuna123",
like_date:"123255634567456"
}
users = {
__username:"totocaster",
avatar_url:"2d931510-d99f-494a-8c67-87feb05e1594",
followers:["don_gio","tamuna123","barbie","mikecsharp","bassman"],
following:["tamuna123","barbie","mikecsharp"],
likes:[
{
username:'barbie',
date:"123255634567456"
},
{
username:"mikecsharp",
date:"123255634567456"
}],
full_name:"Toto Tvalavadze",
password:"Hashed Key",
email:"[email protected]"
}
आप देख सकते हैं मैं आया हुआ समय संग्रह में सीधे मेरे सभी पोस्ट भंडारण। इस तरह मैं तारीख और उपयोगकर्ता नाम (हैश और रेंज कुंजी) का उपयोग कर पदों के लिए पूछताछ कर सकता हूं। सबकुछ ठीक लगता है, लेकिन यहां समस्या:
मैं एक बार में उपयोगकर्ता-टाइमलाइन के लिए क्वेरी नहीं कर सकता। यह सिस्टम द्वारा सबसे अधिक मांग किए गए प्रश्नों में से एक होगा और मैं ऐसा करने के लिए प्रभावी तरीका प्रदान नहीं कर सकता। कृपया मदद करे। धन्यवाद।
यह मेरे लिए एक सतत सवाल है, जबकि मैं अपने सोशल नेटवर्क की योजना बना रहा हूं – MCKapur
तो क्या आप टाइमलाइन टेबल से सभी उपयोगकर्ता डेटा प्राप्त करने में सक्षम होना चाहते हैं? आप केवल उस उपयोगकर्ता नाम के लिए हैशकी पर पूछ सकते हैं? यदि ऐसा नहीं है तो मुझे थोड़ा और विस्तृत क्वेरी उदाहरण दें, शायद एक साधारण एसक्यूएल-जैसे सिंटैक्स में। यानी 'सभी समयरेखा से चुनें जहां USERNAME = totacaster' – greg