php - 邀請好友機制的設計思路
滿天的星座
滿天的星座 2017-06-05 11:07:59
0
5
1052

網站需要邀請好友的功能模組,流程是這樣的:

用戶中心產生每個人(A)的邀請鏈接,然後被邀請人(B)點擊註冊之後,B的註冊字段後面插入A的ID作為標記。

目前這樣可以統計出每個人邀請的好友列表,但後續有以下問題:

被邀請人B首次下單,會獎勵A 10%的積分獎勵,非首次下單,不於獎勵
(我自己笨方法是這麼想的,每一個用戶下單時候,都先判斷是否有上級A用戶,如果沒有就直接下單,如果有上級A用戶,就要再判斷一次是否首次下單,然後再將積分增加給上級,並且同時進行B用戶的下單操作)

那麼問題就是,我自的笨方法需要對每一個用戶的每一次下單進行首次下單的判斷,感覺這樣的過於累贅,容易出現問題,不知道大神有沒有優化思路

滿天的星座
滿天的星座

全部回覆(5)
世界只因有你

我覺得可以這樣搞:

  1. 好友關係:可以單獨搞一個表,好友關係表,裡面存兩個欄位 uid(用戶ID), contact_uid(關聯好友ID)

  2. 下單是否是首次並增加推薦好友積分操作:可以在用戶相關表增加個是否下過單的字段(樓上也有提過),默認為0為沒有下過單,每次下單都會先查詢這個字段,如果是1則走正常下單邏輯;如果為0,表示從未下過單,然後執行你將要用到的邏輯,就是用戶是否有推薦人,給推薦人增加積分等的處理

伊谢尔伦

一個用戶下單時候,都先判斷是否有上級A用戶,如果沒有就直接下單

不要這樣做,會影響性能。

統計積分在每天凌晨統計。

某草草

可以提出一張表,這張表有id,B的id,C的id,以及字段buystate,buystate的值可以取1或者0,0代表不是第一次購買,1代表是第一次購買

漂亮男人

直接加上一個字段,是否下單過,預設為0,反正下單的時候會獲取這個用戶的信息,順便判斷一下是不是等於0就知道是不是首單了。積分方面,如果擔心效能,可以考慮存到redis裡,固定一個時間修改資料庫。

过去多啦不再A梦

我覺得思路沒問題
有一點提一下,獎勵積分應該要在訂單完成後吧,而不是下單的時候。
在使用者表加一個欄位表示歷史完結單次數就好了,後續如果需求改變為前N次返積分也很容易。而且通常下單或完成訂單的過程中本身就需要查詢使用者表,並不顯得繁雜。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板