我是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:运动文件适用于所有练习。
提前致谢。