创建两列:
- int userId : PRIMARY KEY 和 AUTO_INCREMENT 如果您的数据库支持它。每个用户都将被分配一个唯一的号码。
- int referrer:这是推荐当前用户的人的 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
*/