MongoDB数据库设计的良好实践

时间:2016-11-04 08:37:24

标签: mongodb mongoose nosql

我是MongoDB中的新手,我一直使用SQL数据库,所以我有点困惑。我以这种方式为商店培训课程创建了一个数据库:

var SessionSchema   = new Schema({
  date: {type: Date, default: Date.now },
  time: Number, //Time in seconds
  user: {required: true, type: mongoose.Schema.Types.ObjectId, ref: 'User'},

});

var ExerciseSchema   = new Schema({
    session: {type: mongoose.Schema.Types.ObjectId, ref: 'Session'},
    movement: {type: mongoose.Schema.Types.ObjectId, ref: 'Movement'},
    timestamp: {
        type: Date,
        default: Date.now
      }
});

var SetSchema   = new Schema({
    repetitions: Number,
    weight: Number,
    rest: Number,
    timestamp: {
        type: Date,
        default: Date.now
      },
    exercise : {type: mongoose.Schema.Types.ObjectId, ref: 'Exercise'}

});

var MovementSchema   = new Schema({
    name:  { type: String, required: true, index: true, unique: true },
    material:{ type: String, required: true},
    muscles : [{
       name : { type: String, required: true},
       percentage : { type: Number, required: true}
     }]
});

所以问题是,在面向对象的数据库中,这是一个很好的设计,最好只保留一个大文档吗?

注意:有时候我只想获得部分数据(在这种情况下可能是我的设计好吗?)

注2:理念是一个会话由练习组成,这个练习有一个动作和一个套数。

注3:运动文件适用于所有练习。

提前致谢。

0 个答案:

没有答案