2
我是傳銷網絡的成員,我也是一名開發人員。我的問題是關於數據庫結構構建一個無限級別的MLM軟件。例如:如何存儲和查詢樹形結構的數據庫
1人(6000人是他的網絡 - 但只有4個直接聯繫到他)
如何存儲數據和查詢多少分做他的網絡產品?
我可以使用多對多的關係,但是一旦我們有很多用戶和龐大的網絡,查詢和循環這些記錄會花費很多。
我是傳銷網絡的成員,我也是一名開發人員。我的問題是關於數據庫結構構建一個無限級別的MLM軟件。例如:如何存儲和查詢樹形結構的數據庫
1人(6000人是他的網絡 - 但只有4個直接聯繫到他)
如何存儲數據和查詢多少分做他的網絡產品?
我可以使用多對多的關係,但是一旦我們有很多用戶和龐大的網絡,查詢和循環這些記錄會花費很多。
在任何數據庫中,如果「樹」的每個成員具有相同的屬性,則最好使用自引用表,特別是如果每個樹有1個且只有1個直接父代。
IE。
HR
------
ID
first_name
last_name
department_id
sal
boss_hr_id (referneces HR.ID)
通常情況下,大老闆將有一個NULL boss_hr_id
查詢這樣的結構,在Postgres裏,你可以使用熱膨脹係數(「遞歸」語句)
對於表上面,查詢像這樣會工作:
with recursive ret(id, first_name, last_name, dept_id,boss_hr_id) as
(
select * from hr
where hr.id=**ID_OF_PERSON_YOU_ARE_QUERYING_STRUCTURE**
union
select hr.id, hr.first_name, hr.last_name,hr.dept_id,hr.boss_hr_id, lev+1 from hr
inner join ret on ret.boss_hr_id=hr.hr_id
)
select * from ret
)