我之前的做法是直接做一個表,
把每年的值分開,
只抓當年的值.
所以紅利要與會員資料分成兩張表來處理嗎?
我不知道你們怎麼做的,
所以沒辦法給建議.
我也建議分成兩張表處裡...
喔喔, 看懂了,
原來是紅利點數,
那跟我之前那個不一樣,
我目前類似功能的作法是會有另外一張表紀錄細節,
但是每次紅利點數異動會同時更新這個使用者的紅利點數,
(因為如果直接改點數一方面沒有細節要查很難查,
另外一方面如果兩個地方同時對資料庫做動作有可能會出現資料遺失的問題,直接Insert資料才不會有遺漏)
另外也會在使用者資料表建立紅利點數欄位,
但是資料來源是紅利點數的那張表,
之所以要建立紅利點數欄位是因為另外一張表資料多的時候,
查詢會變慢,
客戶會抱怨...
小魚的做法,在遇到樓主希望1/1歸零紅利的需求時,應該也是必須用排程去清除/更新紅利點數
這樣說也是,
如果沒有處理到這個人的紅利,
剛想到另一個作法是抓紅利的時候先更新再抓,
就不用排程了.
客戶登錄時去清空過期紅利就好,幹嘛要排程?
登入的時候也可以,
才不會執行太多次.
雖然可以利用事件觸發(會員登錄、查紅利)的時間點執行更新 job,但如果是此資料結構,我個人仍比較習慣用排程去處理。
原因:
thwu
這問題應該要看需求,
如果只有使用者自己會看到,
那就自己觸發事件的時候處理就好了,
如果是要給其他人看的,
可能還是要排程比較好.
你應該是在找這個
https://www.webteach.tw/?p=114
另建議你要多個table去存log,去記錄清空前的紅利點數是多少,以免客戶那邊有爭議的時候你無法做返回的動作。