2010-01-15 2 views
1

저는 지금 RDBMS 세계에 오랫동안 있었지만 모든 nosql 동작을 탐구하고 싶습니다. 그래서 내 첫 질문 :key/value (일반) 및 tokyo cabinet (python tc-specific) 질문

중복 키의 가능성을 가지고 나쁜 연습입니까? 예를 들어, 성 (last-name) (아마도 검색 항목 일까?)을 입력 한 주소록은 여러 항목을 가질 수 있습니다. 성을 사용하는 것은 나쁜 습관입니까? 엔티티에 대한 가장 "검색 가능한"정의로 간주되는 키입니까? 이 새로운 세계에서 "모범 사례"를위한 자원이 있습니까?

나는 tokyo cabinet (특히 tc 인터페이스)에 흥미를 느끼지 만 동일한 키를 가진 다른 엔티티 (예 : 위 참조)를 반복하는 방법을 알지 못합니다. 첫 번째 엔티티 만 얻을 수 있습니다. 어쨌든 도움을 미리 감사드립니다.

답변

1

이것은 SQL을 구현하지 않아야합니다. 예를 들어, Cassandra는 범위 쿼리를 허용하므로 성과 데이터를 모델링하여 성 또는 성 (이름, 성)으로 쿼리 할 수 ​​있습니다.

이 외에도 여러 가지 간단한 키 - 값 저장소는 실제로 다중 값 항목에 대해 목록 구조 (또는 그와 같은)를 저장해야합니다. 이것이 가능한지 아닌지는 예상되는 "중복 횟수"에 달려 있습니다. 성을 사용하면 숫자가 다소 높을 수 있으므로 많은 경우에 이상적인 모델처럼 들리지는 않습니다.

0

키 - 값 저장소에는 중복 키를 사용할 수 없으며 키 뒤에 단일 값이 있습니다. 중복 키를 갖기 위해서는 토큰 캐비닛의 B + Tree 데이터베이스를 사용하여 값을 정렬하고 복제 할 수 있습니다 (해당 키를 사용하여 첫 번째 항목으로 이동하여 반복 할 수 있습니다).

항목을 검색 할 때 키가 필요하므로 키 - 값 저장소에서 모든 문제를 쉽게 해결할 수있는 것은 아닙니다. 더 복잡한 쿼리를 허용하므로 MongoDB과 같은 것이 더 적합 할 수 있습니다.