項(xiàng)目是一個(gè)類(lèi)似產(chǎn)品代理的項(xiàng)目,主要實(shí)現(xiàn)的功能就類(lèi)似產(chǎn)品代理一樣,一級(jí)一級(jí)的往下面去招代理商去銷(xiāo)售我們的產(chǎn)品,就好像,市級(jí)代理->區(qū)域代理->縣級(jí)代理->鄉(xiāng)鎮(zhèn)代理這種流程一樣。每個(gè)級(jí)別只能從上級(jí)獲取利潤(rùn),就好像產(chǎn)品銷(xiāo)售一樣,你賺的錢(qián)是你上一級(jí)代理確定的,你也可以去發(fā)展下級(jí)代理商,而你的下級(jí)代理商的利潤(rùn)是你可以決定的,你決定的下級(jí)代理商賺的最大利潤(rùn),不能超過(guò)你自己的實(shí)際利潤(rùn)最大值,也就是你上級(jí)給你的利潤(rùn)值。每個(gè)代理級(jí)別之間的關(guān)系大致就是如此。
梳理清楚了代理商流程之后,就可以根據(jù)這個(gè)來(lái)建對(duì)應(yīng)的數(shù)據(jù)表了,這里的話(huà)建表可以類(lèi)似導(dǎo)航欄目無(wú)極分類(lèi)去建表,其實(shí)這個(gè)分潤(rùn)跟導(dǎo)航無(wú)限分類(lèi)差不太多,原理是相同,總是通過(guò)一個(gè)id去尋找他的上級(jí)或者他的下級(jí)來(lái)進(jìn)一步操作。下面是我在項(xiàng)目中建的數(shù)據(jù)表:
其中ID就是當(dāng)前表的主鍵id自增,然后l_id是代理商id是不會(huì)重復(fù)的id,p_id,是當(dāng)前代理商的上級(jí)id,profit是當(dāng)前代理商的利潤(rùn)值,relation是上下級(jí)關(guān)系的一個(gè)集合,child 是他的所有子級(jí)代理商集合,都是用他們id連接逗號(hào)拼接的字符串,在注冊(cè)的時(shí)候?qū)懭刖涂梢苑奖阒蟮囊恍┎僮?,省去了很多查?xún),也優(yōu)化了數(shù)據(jù)庫(kù)運(yùn)行。下面是一些虛擬測(cè)試數(shù)據(jù)
其實(shí)數(shù)據(jù)表建號(hào)之后,在對(duì)應(yīng)的查詢(xún)操作就簡(jiǎn)單多了,當(dāng)時(shí)項(xiàng)目中需要一個(gè)查詢(xún)出來(lái)當(dāng)前id的所有子級(jí)代理商,如果當(dāng)時(shí)沒(méi)有加上一個(gè)childs字段的話(huà),查詢(xún)起來(lái)真的就很費(fèi)力氣了,不過(guò)有了這個(gè)字段查詢(xún)就變得相對(duì)簡(jiǎn)單一些,下面是一個(gè)查詢(xún)所有傳入id的子級(jí)代理商代碼;
代碼就不再多解釋?zhuān)饕褪且粋€(gè)回調(diào)函數(shù),重復(fù)調(diào)用自己來(lái)獲取所有子級(jí)元素,主要還是建表時(shí)候的思路要梳理清楚,這樣代碼就好寫(xiě)很多