TLDR;サブ文書やリレーショナルIDを使用する必要がありますか?MongoDB:サブ文書の使用
これは私のPost
スキーマです:
const Post = new mongoose.Schema({
title: {
type: String,
required: true
},
body: {
type: String,
required: true
},
comments: [Comment.schema]
})
そして、これは私のComment
スキーマです:
const Comment = new mongoose.Schema({
body: {
type: String,
required: true
}
})
はPostgresのでは、私が代わりにコメントの配列を有するので、Comment
でpost_id
フィールドを持っているでしょう内側はPost
です。私はあなたがMongoDBで同じことをすることができると確信していますが、私はどちらがもっと従来のものかわかりません。人々がMongoDBの参照(およびテーブルへの結合)上のサブ文書を使用する場合、それはなぜですか?言い換えれば、サブ文書を使用する理由は何ですか?それが有利な場合は、Postgresでも同じことをする必要がありますか?
"コメントのIDを投稿内に残しておけば、両方のテーブルをクエリする必要がありますが、これは良い考えではありません。"それはあなたがリレーショナルDBで常にやっていることじゃないの? MongoDBでも、 'populate()'を使って同じことができます。 –
ああ、私の考え方は違うかもしれないと思いますか? 'Comment'の中に' post_id'フィールドを持つのが 'Post'の中にコメントの配列を持つよりも意味があるかどうかを尋ねています。 –
あなたの要件に基づいています。あなたが頻繁に投稿テーブルまたはコメントテーブルを照会するかどうか。 – Shrabanee