如何处理mongoDB集合的规范化?

时间:2019-03-04 09:04:15

标签: node.js mongodb mongoose mongoose-schema mongoose-populate

有两个集合Employee和“项目”,它需要维护员工和项目基础项目分配的历史记录

我已经创建了收集模式,但是它复制了数据,还有其他方法可以实现吗?

  

员工架构

const employeeSchema = mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    project: {
        start: {
            type: Date,
            required: true
        },
        end: {
            type: Date,
            required: true
        },
        project: {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Project',
            required: true
        }
    },
}
  

项目架构

const projectSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    employee: {
        start: {
            type: Date,
            required: true
        },
        end: {
            type: Date,
            required: true
        },
        project: {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Employee'
        }
    }
});

或者我可以创建用于映射项目和员工的单独集合吗?如果我这样做,那么MongoDB和RDBMS有什么区别?

0 个答案:

没有答案