저는 DynamoDB를 처음 접했고 커다란 혼란을 겪었습니다 : 어떻게하면 테이블이 생겼을까요? (그 아직 읽지 않는 사람들을 위해 권장) http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/BestPractices.html아마존 dynamodb에서 테이블 디자인하기
을 그리고 지금 나는 DynamoDB의가있을 것이다 사용하기 시작 모두를 생각하는 몇 가지 딜레마가 있습니다
여기 게시물을 읽었습니다.
첫째, 내 테이블 : 학생, 팀 프로젝트
학생 : ID, 연령 ...
TEAMS : ID, 학생 1-ID , 학생 2-ID, 현재 프로젝트, 이전 프로젝트, 최종 업데이트 된 날짜
개 프로젝트 : ID, 팀-ID, 질문의 목록, 목록 student1answers, 목록 student2answers
일부 의견 :
- 당신은 내가 범위 키를 사용하지 않는 볼 수 있습니다. 필요합니까?.
- 각 대답은 (질문 수, 텍스트, 삽입 한 날짜 수)의 json입니다.
- 모든 학생이 여러 팀으로 구성 될 수 있습니다.
내 딜레마 :
- 나는 특정 날짜 이후에 업데이트 된 특정 학생의 모든 팀을 싶어.
현재 2 개의 스캔 작업을 사용하고 있습니다. 하나는 student1을 검색하고 두 번째는 student2를 검색합니다.
**Is there a better way ?**
나는 새 테이블 추가하는 방법에 대한 생각 : 그래서 특정 학생들을 위해 팀을 조회 한 후 마지막으로 모든 팀 하지만 무엇을 batch_get_item 수있는 학생 ID, 팀 ID : 사용자 전투를 - 갱신? 어떻게 batch_get_item 내부에서 쿼리 할 수 있습니까?
프로젝트가 끝나면 더 이상 사용하지 않습니다. 이전 항목으로 무엇을 할 것인가? 삭제 하시겠습니까? 그들을 다른 테이블로 옮기시겠습니까?
프로젝트 테이블에서 업데이트 할 수있는 특성은 응답 특성 인 입니다. 따라서 성능을 위해 다른 테이블로 이동하는 것이 좋습니다.
업데이트가 실제로 두 번 수행되어야합니까?(때 답을 보내 student1 때 답변을 보내 student2 - 다음 프로젝트는 옛)
을 내가 답변에 대한 새 테이블을 만들 경우 내가 JSON 형식으로 저장할 필요가 없습니다 *
어떻게 당신에게 것 테이블 디자인? 저에게 알려주세요.