我正在处理两个文档。我对哪种方法更好感到困惑。
选项1:
var personSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
job: {
type: Schema.Types.ObjectId,
ref: 'Job',
}
});
var jobSchema = Schema({
_id: Schema.Types.ObjectId,
title: String,
});
选项2:
var personSchema = Schema({
_id: Schema.Types.ObjectId,
name: String
});
var jobSchema = Schema({
_id: Schema.Types.ObjectId,
title: String,
person: [
{
type: Schema.Types.ObjectId
}
]
});
选项1,作业的ID嵌入在person对象中。 选项2,作业包含一组人员。
似乎有两个选项在做同一件事。
选项1.如果我删除工作记录,该人将不会更新。这意味着当我尝试删除作业时,我必须更新引用该作业的所有人员对象。
选项2。如果删除个人记录,则作业队列不会更新。这意味着,当我尝试删除人员时,必须从作业的人员队列中取出已删除的项目ID。
我做对了吗?哪种方法更好处理,或者有中间件来处理这种情况?