1
我正在设计一个人们可以预订活动的网站。我设计的模式存在一些并发问题。首先,我要表明的模式:Mongo数据库设计
{
title: String,
pricing: { [
data: Date,
package: String,
price: Number
] },
availability: { [
date: Date,
capacity: Number, // Number of users a vendor can take.
booked: Number // Number of users booked the event for the date.
] }
}
现在事件的价格是唯一由Date
和Package
。因此,如果包装不同,同一日期可以有多个价格。
只有Date
才可用。所以我必须为此创建一个单独的对象。
问题
的问题是,我有两个不同的调用。
- 保存可用性(节省了一次所有日期的能力。这是一个全部删除和插入新呼叫类型,但保持
booked
相同的值) - 预订(增加
booked
由1一个特定的日期)
由于两个驻留在同一个对象,我想我会在未来的一个大的并发问题,因为,如果我救的可用性,并在同一时间使用者的书籍,同样的事件,在booked
号可能不正确。
有没有更好的解决方案?
是预订
编辑例如,你的假设有关我的帖子更新是正确的。 我也想到了这个,但是你不觉得这也是个坏主意吗? 如果我有100个元素在数组中,它会打100个电话到数据库? –
正如我现在写的是。但研究bulk.find.update。我已经对具有数千条记录的类似场景使用批量操作,并且表现非常出色。 – ThrowsException
谢谢,看看猫鼬上如何做到这一点! :) –