[問題]抽獎邏輯討論

抽獎遊戲, 假設我有
A(獎金1塊錢)「獎項數量無限」
B(獎金2塊錢)「獎項數量無限」
C(獎金3塊錢)「獎項數量無限」
D(獎金100000塊錢)「獎項數量1個」
E(獎金500000塊錢)「獎項數量1個」
五個獎項,
規責是E獎最大獎被抽到, 系統就要剔除這個獎項,
讓下個抽獎人不能再抽到E獎。

問題:
因為獎項我是存到資料庫, 然後訂閱這些獎項,
甲:訂閱的獎項表是ABCDE「假如抽中E就會到資料庫去更新表為ABCD」
乙:訂閱的獎項表是ABCDE「假如抽中E就會到資料庫去更新表為ABCD」
丙:因為甲玩完了才去訂閱獎項表(並且甲把E獎抽走了)所以得到的表是ABCD

但是如果就是這麼倒霉同一時間甲乙調出來的表都是ABCDE
又剛剛好都抽中E那怎麼辦?
這樣就會有兩個中獎人抱走500000X2 那不是虧大了。
請問像這樣的問題有什麼方法可以避免嗎?

這應該比較算是backend的邏輯問題,作法就是race,誰先拿到誰就更新成功,其他人就是失敗,至於怎麼實作你可以查一下相關的資料囉