이 질문은 NoSQL 데이터베이스를 기반으로하는 모든 문서와 관련이있을 수 있습니다.DynamoDB에서 "social-feed"설계
저는 확장 성 및 통증 - 관리 요인 때문에 DynamoDB에 관심을 기울이고 있습니다. 데이터베이스에는 두 개의 주요 엔터티가 있습니다 : 사용자 및 게시물. 일반적인 에 대한
요구 사항은은 매우 간단 조회 :
- 홈 피드 사용자의
- 목록 나는/사용자는 여기에
__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과 비슷한 문법으로 약간 더 자세한 쿼리 예제를 제공하십시오. 즉, 'USERNAME = totacaster 인 타임 라인에서 모두 선택' – greg