2013-05-22 52 views
0

我分配給的當前系統沒有客戶購買,存款和獎勵積分(由管理員)記錄 - 只是用戶表中的信用列。每次用戶存款時,該列都會增加。如果他們在網站上購買一些東西,他們的信用就會被扣除。SQL Server計費實施 - 當前餘額

完整的計費實施細節現在並不那麼重要,但我知道我們不知何故必須計算出購買和存款才能達到目前的餘額。

每次我們想知道客戶的餘額時,我想我們必須運行一個存儲過程來計算自客戶第一筆交易以來的每筆支付/存款記錄,對嗎?如果是這樣,那麼這似乎是一個相當沉重的要求,特別是如果經常查詢。

可能存在一些「平衡方法」,我們可以按照我們當前的方式存儲餘額,並且常規(通過調度,我猜)通過上述存儲過程重新計算每個用戶的餘額。

我想知道管理用戶餘額的最佳實踐。如果在這種情況下甚至有可能實現一致/正確的數據和效率,我就會拍攝。你有什麼建議?

實現計費系統有哪些資源?

回答

2

爲什麼不存儲當前餘額和交易清單?

當發生交易時,向交易歷史記錄表中寫入一行,並更新客戶餘額列。

如果您需要客戶餘額,請查看客戶表,如果您需要交易歷史記錄,請查看交易歷史記錄表。

通過在原子事務中包裝兩個數據庫寫入(事務&客戶),可以保證一致性。

+0

就我而言似乎是一個「嘟嘟嘟」,但在這個論壇上的幾個類似問題的答案從來沒有提出過這個問題。謝謝。 –