此問題可能與任何基於文檔的NoSQL數據庫相關。在DynamoDB中設計「social-feed」
我正在製作一些感興趣的特定社交網絡,並決定使用DynamoDB,因爲它具有可伸縮性和無痛苦管理因素。數據庫中只有兩個主要實體:用戶和帖子。
要求共同查詢很簡單:
- 首頁飼料(的人進我以下)
- 我/用戶飼料(我的飼料,或特定的用戶飼料) 用戶
- 列表I /用戶跟着追隨者
- 列表
這裏是一個數據庫方案我拿出這麼遠(注:__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
因此,您希望能夠從時間表中獲取所有用戶數據?你可以只查詢該用戶名的hashkey?如果情況並非如此,請給我一個稍微更詳細的查詢示例,可能採用簡單的類似SQL的語法。即'SELECT all from timeline where USERNAME = totacaster' – greg