저는 MySQL에 익숙하며 이제는 키 값 저장소 사용 방법을 이해하려고합니다. 데이터베이스 설계의 예와 정보를 삽입하고 얻는 방법과 같은 좋은 멍청한 생각이 있습니다.DynamoDB 데이터베이스 설계 (키 - 값 저장소, noSQL)
이것은 키 값 저장소에 MySQL의 데이터를 저장하는 방법을 나타내는 올바른 표현입니까?
TYPE: MySQL
TABLE: users
COLUMNS: user_id(primary), username, location
TYPE: Key Value Store
TABLE: users
KEY: user_id
VALUES: username, location
그래서 위의 내용이 정확합니다. 일반적인 사용자 정보를 추출하는 것은 이해하기에 충분히 간단합니다. 그렇다면 키 값 저장소에서 다음 쿼리를 어떻게 수행합니까?
SELECT username FROM users WHERE location = 'mexico'
내가 쉽게 할 수있는 방법은 다른 테이블을 만드는 것입니다. ,
--Original Table--
TYPE: Key Value Store
TABLE: users
KEY: user_id
VALUES: username, location
--Additional "query" Table--
TYPE: Key Value Store
TABLE: user-location
KEY: location
VALUES: user_id
그러나 지금 우리는 새로운 사람이 조인 두 테이블을 조정할 필요가 자신의 위치를 업데이트합니다 (당신은 단지 몇 백 있던 경우에이 작업을 수행 할 수있는 다른 방법이 있는지 메신저, 5,000 명 이상의 사용자가 가정) 내가 생각하기에 엄청난 문제는 아니며, 애플리케이션 코드와 함께 매우 정확해야합니다.
이러한 문제를 해결하는 가장 좋은 방법입니까? 또는 나는 무엇인가 놓치고 있냐?
일반적으로 NoSQL 데이터 저장소는 적은 기능을 제공합니다. 그것들은 개발자 생산성에 대해 정확히 알려지지 않았습니다. – usr