При создании схемы для публикации и комментариев для любого веб-сайта в социальных сетях я видел людей, использующих два подхода: встраивание документов и ссылок.Далее в ссылках у нас может быть два подхода, как показано ниже. Какой из следующих вариантов более эффективен?
Подход 1 : Здесь у нас есть массив комментариев в схеме поста, где мы храним идентификатор комментариясослаться на схему комментариев.Мы заполняем комментарий при отображении всех данных поста.(См. Код ниже). Схема публикации:
//POST SCHEMA
const PostSchema = new mongoose.schema({
postTitle: String,
postContent: String,
comment: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Comments'
}
]
...
...
})
Схема комментариев:
const CommentSchema = new mongoose.schema({
commentText: String,
})
Подход 2 : Здесь мы не включаем массив комментариев в схему сообщения вместовнутри массива комментариев мы ссылаемся на пост через идентификатор.(См. Код ниже)
Схема публикации:
//POST SCHEMA
const PostSchema = new mongoose.schema({
postTitle: String,
postContent: String,
...
...
})
Схема комментариев
const commentSchema = new mongoose.schema({
commentText: String,
post: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
})
В двух приведенных выше подходах я смог понять это очень сильно, что 1-й подходсохраняет идентификатор каждого комментария, и при его заполнении выполняет поиск в массиве комментариев для каждого идентификатора и заполняет содержимое.
2-й подход имеет идентификатор сообщения, сохраненный в каждом комментарии, поэтому при поиске ему нужен только идентификатор сообщения, и он может искатьвсе комментарии к этому посту в массиве комментариев и возврат комментариев.
Какой подход я должен рассмотреть для использования в социальных сетях или вообще?Я не ищу никаких сравнительных тестов, просто если кто-то использовал эти подходы раньше, может рассказать мне о плюсах и минусах обоих.
Спасибо.