Dynamodb의 table 설계(?)에 대해 질문합니다. 아시다시피 table의 hash_key과 range_key는 update_item이…

Dynamodb의 table 설계(?)에 대해 질문합니다.

아시다시피 table의 hash_key과 range_key는 update_item이 불가능합니다.

user라는 table를 만들고

email 필드를 hash_key로 설정하려 했는데,

email이 바뀔 상황을 고려하고있는데요.

만약에 email이 바뀌어야한다면 기존꺼 delete_item 후 새로운 email로 put_item을 해야하는것 말고는

방법이 없나요?

아니면 email처럼 변경 가능성이 있으면서도 table에서 유일해야하는 그런 것들은 dynamodb에 담기엔 부적절한가요?

6 thoughts on “Dynamodb의 table 설계(?)에 대해 질문합니다. 아시다시피 table의 hash_key과 range_key는 update_item이…

  1. 현재 상태로는 Email이 바뀌면, user 테이블 뿐만 아니라 다른 테이블 (예를 들어 게시판에 해당 유저가 쓴 게시물) 까지 업데이트 해야 할거 같은데요… 시스템 내부적으로는 user id 라는 순차적으로 증가하는 키를 별도로 key로 쓰는 걸 고려해 보시지요. 그리고 그 컬럼에 secondary index를 걸구요.

  2. 양흥순님 답변 감사합니다. 아 .. 제가 언급을 안했네요. 말씀하신대로 user_id를 두고, 다른 테이블에는 해당 id를 사용하여 관계를 맺고, email이 바뀌는것과 상관없이 하려고합니다.

    그런데 user_id와 별개로 email이 hash_key가 되었을때 변경은 어찌 해야할지 잘 모르겠네요 …

  3. email -> user id 매핑만 가지는 테이블을 만드시는 건 어떨까요? (물론 테이블 2개를 건드리면서 정합성을 유지하려면 고려할 사항이 많아지긴 하지만요)

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.