mongodb - 建立2个关系文件

时间:2015-01-28 15:37:07

标签: mongodb mongoose nosql

我正在为我的文档建模并且现在遇到问题:

在我的应用中,用户有一个他们可以接受的优惠列表。所以我有两个文件,"用户"和"提供"。我想向我的用户展示他们已经接受的优惠。但是合作伙伴(插入优惠的人)应该看看哪个用户在什么时间接受哪个优惠。

我的第一个想法是在两个文档中使用嵌入数据:

用户:

 offers: {
    accepted: [{
      offer: {
        type: Schema.Types.ObjectId,
        ref: 'Offer'
      },
      time: { type: Date, default: Date.now() }
    }]
  }

信息:

 costumer: {
    accepted: [{
        user: {
            type: Schema.Types.ObjectId,
            ref: 'User'
        },
        time: { type: Date, default: Date.now() }
    }]
 }

临: 易于查询

缺点: 重复数据

-

我的另一个是为此创建一个新文档:

AcceptedOffers:

offer: {
        type: Schema.Types.ObjectId,
        ref: 'Offer'
      },
user: {
        type: Schema.Types.ObjectId,
        ref: 'User'
      },
time: { type: Date, default: Date.now() }

哪种解决方案会更好,或者可能有更好的方法?

由于

1 个答案:

答案 0 :(得分:2)

将数据嵌入两个文档中都是我的建议。

在MongoDB中,数据模式应基于应用程序的要求。重复数据不像关系数据库那样严重。在这种情况下,用户文档旨在为用户提供应用程序,而“提议”文档旨在为合作伙伴提供应用程序。