1

node.js + mongoose webapp を開発していますが、データベースの作成について 1 つ疑問があります。データベースの定義方法は次のとおりです。

var user = new Schema({
 id : ObjectId,
 name : String,
 password : String,
 email : String,
 created : Date
});
var comment = new Schema({
 id : ObjectId,
 userId: ObjectId,
 content : String,
 created : Date
})

各コメントをそのユーザーにリンクしたい...それで...これを行う最良の方法はどれですか? これら2つのうちの1つをコメントスキーマに追加することを考えました...しかし、それが正しい答えなのか、それとももっと良い答えがあるのか​​ わかりません:

userId: ObjectId,

また:

userObject: user

ありがとう!

あなたが私を助けてくれることを願っています!

4

2 に答える 2

1

まあ、それは依存します。あなたの質問に対する決定的な答えはありません。通常、ネイティブの MongoDB フィールド参照は使用しないことをお勧めしますが、これにはわずかなサイズのオーバーヘッドが伴います。

私のすべてのプロジェクトで、私は間違いなく最初のソリューションを選択します。これは、一般的にはるかに柔軟性があり、ディスク容量を節約できます。自分でもう1つの要求をしなければならないという犠牲を払って。

于 2012-05-24T20:52:06.333 に答える
0

この場合の単純なデータ構造は、マングースが埋め込みドキュメントと呼ぶものを使用しています。

Brandon Tilley が述べたように、 DBRef のような動作を見て、 mongoose の機能を設定することもできます。これにより、コメント エンティティを別の独立したエンティティとして処理できます。欠点は、コメントのインスタンスがあり、ユーザーの属性にアクセスしたい場合、最初にユーザーへの参照を設定する必要があることです。

最終的には、ユースケースと、情報をどのようにナビゲートするかによって異なります。あまり考えずに、何でも試してみてください。後で別の構造が最適であると判断した場合は、それを変更してください。幸いなことに、これは一般的に MongoDB と NoSQL では非常に簡単です。

于 2012-05-29T03:35:42.877 に答える