我正在尝试开发一个功能,通过显示用户的3度网络(朋友,朋友的朋友,朋友的朋友的朋友)。类似于Linkedin的做法。
我有一个解决方案,但它似乎效率低下并且对数据库进行了大量查询。有没有比下面的伪代码更好的方法来找到用户的3度连接?我是一个php(和编程)新手,如果我错过了一些明显的东西,请提前道歉。谢谢。
Query table to find user’s 1st connections.
Push to Array1()
For (x = 0; x < count (Array1); x++){
Query table to find Array1[x]’ s 1st connections and push to Array2();
}
For (y =0; y < count(Array2); y++){
Query table to find Array2[y]’s 1st connections and push to Array3();
}
Array4 = array_unique(Array3);
数据库中的2个表具有以下结构:
members
id, username, password, id
connections
connectionId, userID, friendID, confirmed
答案 0 :(得分:0)
您可以使用带有'in'子句
的3个子查询来查询Array4select friendID from connections where userID in (
select friendID from connections where userID in (
select friendID from connections where userID in (
select friendID from connections where userID = 1)))
并且不要忘记创建索引