Node.js 企业、企业用户和用户的Mongodb/Mongoose模式
我正在尝试构建一个包含企业、企业用户和用户的应用程序。我提出了这些模式/模型Node.js 企业、企业用户和用户的Mongodb/Mongoose模式,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在尝试构建一个包含企业、企业用户和用户的应用程序。我提出了这些模式/模型 var enterpriseSchema = new Schema({ enterpriseId : ObjectId, enterpriseName : {type: String, index: true}, enterpriseUsers : [enterpriseUserSchema], owner
var enterpriseSchema = new Schema({
enterpriseId : ObjectId,
enterpriseName : {type: String, index: true},
enterpriseUsers : [enterpriseUserSchema],
owner : {type: ObjectId, ref: 'User'}
});
var enterpriseUserSchema = new Schema({
user : {type: ObjectId, ref: 'User'},
role : {type: String, index: true},
lastAccess : Date
});
var userSchema = new Schema({
userId : ObjectId,
givenName : String,
middleName : String,
familyName : String,
username : { type: String, unique: true, index: true },
password : String,
enterprise : {type: ObjectId, ref: 'Enterprise'}
});
var User = mongoose.model('User', userSchema);
var Enterprise = mongoose.model('Enterprise', enterpriseSchema);
请注意enterpriseUsersSchema。这似乎是一种参考企业用户的合理方式。是这样,还是有更好的方法
如果我使用这些模式/模型,我将如何填充企业的用户?我需要每个用户的givenName、familyName和角色。我已经尝试过填充,但鉴于enterpriseUsersSchema,我无法确定如何填充用户。不确定是否需要两个独立的模式,enterpriseUserSchema和userSchema,因为它基本上是一个一对一的映射,除非有另一个角色模式。如果enterpriseUserSchema是RoleSchema,则user应该是userId的数组。要填充企业的用户,请考虑使用我试图简化我的模型。最终,我需要支持用户和企业之间的一对多关系。我不确定你对角色有什么想法。我需要将用户与企业联系起来,我需要知道用户的角色。也许我应该把EnterpriseUsersChema和enterpriseSchema联系起来。我可能需要能够发送具有所有者通知角色的所有用户。谢谢你的见解。