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
謝謝,看看貓鼬上如何做到這一點! :) –