2012-04-20 3 views
0

내가 사용자가 여기에 서로에게 메시지를 보낼 수있는 내가 뭘 해달라고 부탁하는 경우입니다 내가는 MongoDB를

user_to 
user_from 
message 
sent 
ip 
unread 

를 저장할 필드를 MongoDB의를하는 사용하여 응용 프로그램을 쓰고 있어요 여러 데이터를 구조화하는 효율적인 방법은 무엇입니까 사용자 A는 예에 대한 사용자 B로 MSG를 보낸다

user_to : B, 
user_from : A, 
message :hello world, 
sent:1334901545, 
ip : XX.XX.XX.X, 
unred : true 

이 데이터를 처음으로 포맷 저장되는 방법이지만되면 다시 사용자 A가 난 데이터 정상적으로 저장하는 방법을 사용자 B에 메시지를 전송 ?? 두 가지의 생각 나는

user_to : B, 
user_from : A, 
message :hello world again, 
sent:1334901745, 
ip : XX.XX.XX.X, 
unred : true 

또는

user_to : B, 
user_from : A, 
messages : array(
array(message="hello world",sent="1334901545",ip: XXX.X.XX.XX,unread:true), 
array(message="hello world again",sent="1334901745",ip:XX.XX.XX.X,unread:true) 
) 

첫 번째 유형은 분석 쿼리에 대한 더 매우 쉬운 구조가 매우 간단 가장 효율적이다 제발 말해하지만 난 그것을 중복을 증가 생각 데이터가 증가하고 응용 프로그램이 커짐에 따라 더 큰 디스크 공간을 사용합니다.

두 번째 유형은 중복 레코드를 제거하고 디스크 공간을 적게 사용하지만 읽기 어려운 데이터 검색은 복잡합니다. amd를 쓰기에는 효율적으로 사용할 수 없습니다. 다른 많은 합병증

난 그냥 MongoDB를 고려 올바른 방법 인 알고 싶어

나는 것, 내가

답변

0

별도의 레코드를 쿼리 속도를 더 좋을 것이다 단순화를 위해 이동하거나 중복 레코드를 제거하고 디스크 공간을 절약한다 높은 확장 가능한 그걸로가. 또한 귀하의 예에서는 너무 많은 중복 데이터가 없습니다. 만약 당신이 항상 새로운 컬렉션으로 그것을 배제 할 수 있습니다.