創建兩列:
- INT 用戶id:主鍵和AUTO_INCREMENT,如果你的數據庫支持。每個用戶將被分配一個唯一的號碼。
- int 引用者:這是引用當前用戶的用戶的userId。如果用戶不是任何其他用戶的會員,則可將其設置爲0或NULL。
樹圖可以很容易地用幾行代碼。
編輯:既然你問了,這是樹形圖的一些代碼。我選擇了PHP因爲MySQL查詢很容易實現,但這個概念可以很容易地用Java,C和Ruby,Python等
function listUsers($handler, $id, $prefix) {
// Please use MySQLi extension with prepared statements or your code
// becomes SQL injection paradise
$results = mysql_query("SELECT `user`, `referrer` FROM `users` WHERE `referrer` = $id");
while ($row = mysql_fetch_row($results) {
echo $prefix . $row[0];
listUsers($handler, $$row[1], $prefix . "* ");
}
}
$handler = mysql_connect(. . .);
listUsers($handler, 0, "")
做我80%肯定正確實現時,邏輯將起作用。它應該回報:
/*
Jon smith
* Alex Del
* * Jim West
* * Marko Polo
* * Johny Bravo
* Pit Sampras
* * Sara Mat
* * Gabriella white
* * Antonio Santo
* Maja Grozdanova
* * Agon Xheladini
*/
抱歉,我使用的MySQL – AXheladini 2010-07-30 07:58:11
這將是一般用戶的表,要不我就只需要爲這個問題創建另一個表? – AXheladini 2010-07-30 07:59:01
@AXheladini - 這將是唯一的表格,因爲您的要求似乎是任何用戶都可以成爲招聘人員。尚未被招募的用戶對於RecruitedBy將具有「空」。 – Oded 2010-07-30 08:00:56