我現在正在用貨幣到期追蹤問題(原來它不是金錢,但我用它作爲一個更方便的例子)。貨幣到期跟蹤
用戶可以通過某個神祕的原因從平臺上賺錢,並花費他們購買東西(產品,禮品等)。
我正在查找算法(SQL查詢最好的情況)來查找用戶餘額的當前餘額。
支出和賺錢的事件存儲不同的數據庫(MySQL的)表(假設user_earned
和user_spent
)。因此,在正常情況下,我只需計算用戶總數user_earned
並減去所花費的金額(總計user_spent
)。
但是!有一個條件,即贏得的用戶資金在2年內到期如果他們不使用。 這意味着,如果用戶沒有使用他的資金或僅使用其中的一部分,他們將會過期。如果用戶使用他的錢,他們從使用最早的未過期的貨幣記錄,所以餘額(獎金)可以計算在用戶的青睞。
這是5分的情況在時間的事件,有對此案進行更好的理解:
兩個表(user_earned
和user_spent
)已時間戳日期跟蹤。
這可能是一個最好在應用程序代碼中完成的任務。 –
目前,我已經實施了一項服務,通過簡單地建立事件列表(接收,使用,到期)並逐個運行它們來計算餘額。它的工作原理,但如果我需要在SQL查詢中取得平衡以獲得積極的平衡,我必須在數據庫之前將該值非規格化。 – Aistis