領(lǐng)券次數(shù)的設(shè)計(jì)(from 深圳-小明)

image.png

需求

用戶在某個(gè)活動(dòng)中最多領(lǐng)取N張優(yōu)惠券。

每個(gè)活動(dòng)中最多領(lǐng)取M張(優(yōu)惠券發(fā)放總量)。

分析

當(dāng)每一個(gè)用戶領(lǐng)券時(shí),實(shí)時(shí)計(jì)算當(dāng)前用戶可以領(lǐng)取的數(shù)量,查詢量大。
如果提前計(jì)算好,每個(gè)用戶當(dāng)前優(yōu)惠券數(shù)量。就可以在邏輯層判斷出,用戶是否可以領(lǐng)券。

解決方法

增加「領(lǐng)券記錄表」,主要字段有:

字段 描述
receive_code 領(lǐng)券碼。 receive_code = user_id + activity_id 或者 = user_id 或者 activity_id
activity_id 活動(dòng)ID
receive_count 領(lǐng)券總數(shù)量

當(dāng)每成功領(lǐng)取一張,receive_count 加 1。

其中 receive_code 是重點(diǎn),根據(jù)不同情況設(shè)計(jì)不同的 receive_code。

  • 記錄每個(gè)用戶在某個(gè)活動(dòng)領(lǐng)券了多少?gòu)垉?yōu)惠券。 receive_code = user_id:activity_id
  • 記錄每個(gè)活動(dòng)最多領(lǐng)取M張, receive_code = activity_id

若需求,同時(shí)對(duì)用戶優(yōu)惠券總量上限和活動(dòng)上限,則領(lǐng)券是同時(shí)更新兩條記錄。

INSERT ON DUPLICATE KEY UPDATE
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容