台灣最大程式設計社群網站
線上人數
2655
 
會員總數:246575
討論主題:190032
歡迎您免費加入會員
討論區列表 >> 硬體 / 週邊 / 其他 >> 關於傳銷系統(上、下線)資料庫架構要如何設計呢?樹狀結構能嘛??
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於傳銷系統(上、下線)資料庫架構要如何設計呢?樹狀結構能嘛??
價值 : 0 QP  點閱數:5031 回應數:3
樓主

炎羽
初學者
823 245
1394 498
發送站內信

捐贈 VP 給 炎羽
最近因為要幫朋友做系統
但是他們要做傳銷系統@@"
就是那種上下線的機制

上面的能從下面幾曾裡抽取金額
因為第一次寫這種程式....
所以那時是想用樹狀結構

但是對方說有可能做到無限層...""
那麼資料表欄位不就要建立很多欄(這也是有個額度吧....?)


所以上來請教大家有辦法解決嘛...??
還是說不要用樹狀結構呢 ??

本篇文章發表於2005-01-25 21:23
1樓
回應

山羊
檢舉此回應
在同一個table (如Member table)只要有兩個欄位MemberId, SponsorId就可以做到無限多層了,除了多層次傳銷外,BOM也是一種另外一種應用。SponsorId紀錄此Member的直屬上線。

所有傳銷獎金的計算,簡單來說,可以用遞迴程式做到Rollup功能,如果要講求效能,可以將遞迴程式改寫為非遞迴的寫法,相關演算法市面上講演算法的書應該都會提到(大二或大三的課程)。

在SQL上,我知道Oracle支援SELECT ... FROM ... START WITH ... CONNECT BY ...語法可以一次找出整串樹,簡化用傳統3GL的程式寫法。其他的資料庫我就不清楚了。

在資料表的設計面,還可以另外設計一個表,有三種欄位:
SponsorId, MemberId, Level
MemberId為SponsorId第Level代的下線
可以寫批次程式產生此結構內容。
本篇文章回覆於2005-01-25 21:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

炎羽
捐贈 VP 給 炎羽 檢舉此回應
對不起...有點地方不懂
-------------------------------------------------------
在資料表的設計面,還可以另外設計一個表,有三種欄位:
SponsorId, MemberId, Level
MemberId為SponsorId第Level代的下線
可以寫批次程式產生此結構內容。 
-------------------------------------------------------


如果依上面來說,SponsorId為MemberId上屬ID
這樣Level不就是都是 第一代嘛??
是不是哪裡我誤解了....

另外....MS_SQL的話則有辦法嘛....
還是他必須靠其他的敘述句組合,才有辦法找整串樹呢?
本篇文章回覆於2005-01-25 23:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

yysiow
檢舉此回應
請問炎羽...是否有完成你的程式呢.

因為本人也要幫人寫這樣的一個程式..
就是在無限下線方面遇到問題..
是否有簡單的function可以應用呢.
我是使用php+mysql的.
本篇文章回覆於2005-09-01 15:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.