2012-01-28 1 views
2

그래서 포럼을위한 모델을 만들고 있습니다. 실마리와 많은 의견을 생각해보십시오. 스레드에는 많은 의견이 있습니다. RDBMS 세계에서, 나는 이것으로 추측 지금 포럼 모델 MongoDB 용

Thread --has many--> Comment 
id     id 
user_id    thread_id 
        user_id 

같은

으로이 설계 것, 데이터/스키마는 많은 일반 양식 (내가 잊어 버린) 중 하나를 따를 것입니다. 그리고 저는 이것이 이것이 가장 현명한 방법이라고 생각합니다. 그러나 NoSQL 세계 (MongoDB)에서이 작업을 수행 할 때이 관계를 설계하는 가장 좋은 방법은 무엇입니까? 나는 RDBMS 방식으로 거의 그것을 할 수 있었지만 임베디드 객체를 사용하는 이점을 잃어 버렸다. 어떤 이유로, 나는 그게 내가 요구하고 무슨 생각이 작업을 수행 할 수있는 가장 sensical 방법이 될 것입니다 무엇

Thread 
_id 
user_id 
comments => [{_id, user_id, body, created_at}] 

처럼 할 의향입니다. 그리고 왜?

답변

2

먼저, 내 문서와 유사한 예제로 설명하는 Schema Design에있는 문서를 읽었 으면합니다.

그래서 원하는대로 삽입하거나 연결할 수 있습니다. 주석의 수가 관리가 가능할 것으로 예상되는 경우 (상대적으로 더 작음), 너무 많은 주석이있을 경우 링크하는 경우 포함 시키려고합니다.

포함은 단일 게시/스레드를 표시하는 데 하나의 단일 DB 호출이 필요하며 가장 일반적으로 mongodb 응답을 그대로 클라이언트 측 (클라이언트 측에서 UI 렌더링을 수행하는 경우)으로 보낼 수 있다는 이점이 있습니다. * 참고 : 덧글을 추가하려면 $ push를 사용하는 UPDATE가 필요합니다. 그리고 comment._id가 만들어 져야한다는 것을 기억하십시오. MongoDB는 자동 생성하지 않습니다. 임베디드 시나리오에서 주석 데이터를 업데이트하려면 $ 위치 연산자를 사용하여 UPDATE가 필요합니다. *