我正在为我的文档建模并且现在遇到问题:
在我的应用中,用户有一个他们可以接受的优惠列表。所以我有两个文件,"用户"和"提供"。我想向我的用户展示他们已经接受的优惠。但是合作伙伴(插入优惠的人)应该看看哪个用户在什么时间接受哪个优惠。
我的第一个想法是在两个文档中使用嵌入数据:
用户:
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() }
哪种解决方案会更好,或者可能有更好的方法?
由于
答案 0 :(得分:2)
将数据嵌入两个文档中都是我的建议。
在MongoDB中,数据模式应基于应用程序的要求。重复数据不像关系数据库那样严重。在这种情况下,用户文档旨在为用户提供应用程序,而“提议”文档旨在为合作伙伴提供应用程序。