2012-04-20 3 views
0

で複数のデータを構造化するための効率的な方法である私はMongoDBのを使用してアプリケーションを書いていたユーザが、ここでお互いにメッセージを送信することができていることは、私は何MongoDBの

user_to 
user_from 
message 
sent 
ip 
unread 

を保存するフィールドは、私が求めていますどのようなものされている場合ユーザAは、例えばするためのユーザBにMSGを送信:

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

これは、データが最初に格納されているが、再度、ユーザA iはデータべきであることを記憶する方法をユーザ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) 
) 

第1のタイプは分析するために照会するため、より良いと非常に簡単な構造が非常にシンプルで、最も効率的である私に教えてください、私はそれが重複を増やすと思いますデータが大きくなり、アプリケーションが増えるにつれてより大きなディスクスペースを消費することになる。

2番目のタイプでは重複したレコードはなく、ディスク容量は少なくなるが、読み込みが困難なため、amd他の多くの合併症

私はちょうど

答えて

0

別々のレコードが、私は希望、クエリの速度のために良くなるのMongoDBは非常にスケーラブルで考えると正しい方法であるかを知りたい私は単純化のために行くか、重複レコードを排除し、ディスクスペースを節約する必要がありますそれと一緒に行く。また、あなたの例ではあまり冗長なデータはありません。もしそれがあったら、それを常に新しいコレクションに取り込むことができます。

関連する問題