Q:
項目要實現三級分銷;
對於數據庫的設計和用戶注冊后給所有上級(最多三級)返利
但是一點頭緒都沒有,請大神幫忙給個思路!
如果是直接注冊給獎勵20元
如果是通過二維碼或者鏈接進入的注冊頁面 找到上級 給上級獎勵10元
如果上級還有上級就獎勵5元
如果上級的上級還有上級就獎勵3元
對於這樣的實現以及數據表的建立真是沒有思路啊!
目前就是用的很蠢的辦法 就是用戶注冊的時候寫一個方法去查找上級 給獎勵10元
之后再寫一個方法根據上級再去查找 之后再去查找
感覺這種辦法好蠢啊 有什么其他好點的辦法嗎?
如果用遞歸的方式 如何查詢當前會員向上三級的父級會員呢?
A:
create table user
{id
int unsigned not null auto_increment primary key,name
varchar(64) not null,pass
varchar(64) not null,fid
int unsigned not null,money
decimal(6,2) not null
}engine=innodb charset=utf8;
做一個簡單的敘述
1,用戶注冊進來,獲得的信息,按照樓主的意思,應該能得到用戶信息以及推薦人信息(自己注冊推薦人信息為空)。
2,拿到信息之后入庫,自己注冊,fid(也就是father_id的意思)為0.如果有推薦人,則fid設置為推薦人id。此時推薦人為第一層上級。
3,已知推薦人id,可知推薦人fid,可查推薦人的上級。層層遞進。
4,利用id,fid寫一個遞歸函數,查到當fid為0的時候,停止。fid為0,也就是最頂層上級。
5,根據遞歸函數返回的信息,確認總共級數(很容易確認,返回幾組用戶信息就知道總共有幾級)
6,總共的級數確認了,寫一個按照級數分配獎金的方法,調用方法,負責發放獎金。
最后:簡單的sql和簡單的思路就是這樣,如果不太清楚如何根據遞歸查詢上級的方法,我會在評論中給樓主寫出。