任务

时间:2015-12-22 21:12:29

标签: mongodb mongoose schema mongodb-query database-schema

我正在开发一个允许用户创建任务的项目,而其他用户(服务提供商)可以为他们提供报价,然后让用户决定哪个服务提供商适合他们。

以下是服务架构:

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的参考?

由于

1 个答案:

答案 0 :(得分:0)

您可以毫无问题地执行此类子文档关系。

你是什么意思"我需要在用户"中保留参考?请详细说明