我正在开发一个允许用户创建任务的项目,而其他用户(服务提供商)可以为他们提供报价,然后让用户决定哪个服务提供商适合他们。
以下是服务架构:
var ServiceSchema = new Schema({
address: String,
quotations:[{
service_provider:{type:mongoose.Schema.Types.ObjectId, ref:'User'},
price: Number,
date: Date
}],
customers :[{type:mongoose.Schema.Types.ObjectId, ref:'User', childPath:'services_need'}],
});
这是用户架构
var UserSchema = new Schema({
name:String,
password:String,
email:String,
phone:String,
token:String,
services_need:[{type: mongoose.Schema.Types.ObjectId, ref: 'Service'}],
services_provide:[{type: mongoose.Schema.Types.ObjectId, ref: 'Service'}],
});
问题是这是最佳实践吗?我破坏了任何其他设计规则? 另外,我是否需要保留User in Service的参考?
由于
答案 0 :(得分:0)
您可以毫无问题地执行此类子文档关系。
你是什么意思"我需要在用户"中保留参考?请详细说明