Автор имеет несколько статей. Статья всегда ровно одна
автор.
Как бы я спроектировал это в mongodb?
Первый Я подумал, что могу просто встроить «статью» в качестве под-документа в «авторов». Но так как мне нужно собирать все статьи всех авторов довольно часто, я подумал, что это, возможно, не самое удачное решение.
Теперь Я думаю, что было бы лучше иметь две отдельные коллекции: «авторы» и «статьи». У автора будет несколько статей. Так что автору схемы хотелось бы такого:
const authorSchema = new Schema({
email: { type: String, unique: true, lowercase: true},
password: String,
fname: String,
lname: String,
articles: [{
type: Schema.Types.ObjectId,
ref: "article"
}]
})
У каждой статьи ровно один автор. Так это будет выглядеть так:
const articleSchema = new Schema({
title: { type:String, unique: true },
sentences: Array,
image: String,
tags: Array,
word_count: Number,
author: {
type: Schema.Types.ObjectId,
ref: "author"
}
})
Вопрос: действительно ли это? Будут ли у меня проблемы с такого рода настройкой?
Меня беспокоит, что сохранение нескольких статей в author
, а также сохранение author
в каждом article
является избыточностью, которую следует избегать или, по крайней мере, не считается очень хорошей практикой .