如何設計分銷系統中 多級用戶關係的 數據結構?

目前市面上有很多分銷系統,裡面有三級代理,三級會員

保存了用戶差不多6級,甚至更多的級別,目前我是每個用戶保存其父節點,請問有沒有其他好的數據結構呢

因為業務上需要計算,用戶的一級代理,二級代理,三級代理分別有多少人,目前我採用了二種笨辦法了,一種是離線計算好每個用戶的每個級別的人數,另一種就是實時計算


比放說這樣一個結構,微軟的銷售分公司,分為五級,分別為:

亞洲區(1)

大中華區(3)

華東區(9)

江蘇分公司(13)

南京分公司(21)

如果南京分公司產生了一條訂單數據,那麼數據如何記錄呢?建議這樣:

訂單表,記錄訂單信息。假設id為5.

再加一個關係表。分別是公司id、訂單id、層次。數據如下:

公司 訂單 層次

1 5 5

3 5 4

9 5 3

13 5 2

21 5 1

這樣不管誰查詢、統計,都很方便。


統計?在用戶表裡添加三個欄位一個是二級數量一個是三級數量,一個是父級id,每當發展了一個二級就+1,每當二級發展了他的二級就給他二級+1,然後給父級id的三級+1,這樣不就不用統計了。。。。直接調用數據。。。。可行不?


設計兩張表,一張分銷商表,存所有分銷商的信息,只保存父id;另一張分銷商統計表,每新加入一個分銷商,所有的父節點分別增加一條對應關係記錄,並保存級別欄位;統計的話,只計算統計表,這樣是否可行?


最近在做一個分銷的項目,最高涉及到5級,正在糾結這個數據結構怎麼設計才好,如果只是一張表的話,給一個上級ID,這樣查5級的話,豈不是效率很差。。。求大神指教。。。


你那個統計三級只保存父節點完全可以了。實時統計起來也是很快的。。

我現在開發的一套系統,需要統計每個人名下所有層的人數。。正在糾結數據結構怎麼設計法。。

雖然也可以只保存父節點,通過遞歸的方式,逐層統計每層人數,但覺得這種方式效率太低了。


我都還沒搞懂三級會員是啥意思?期待高手回答!學習學習!


推薦閱讀:

TAG:演算法 | 數據結構 | 分銷平台 |