让我们说;
我有一个$ friends数组,有2,000个不同的friendID号码
+
我有一个带有10,000个bulletinID号码的$ bulletins数组,$ bulletins数组还有另一个值,其userID是谁发布了公告条目
现在是否可以获取所有具有与friends数组中的userID匹配的userID的bulletinID号码?如果它是可能的,这会是快速还是慢,或者通常不是一个好方法?我试图在我的网站上发布公告类型的帖子,只显示由用户的朋友发布的帖子,但有些用户有几千个朋友,公告可能有数千个,但只有部分用户可以查看
此外,如果这是可能的,我可以将其限制为类似于与friendID匹配的前50个公告ID
你在哪里得到这些成千上万的朋友/公告阵列?如果答案是关系数据库(MySQL,PostgreSQL),那么这应该使用SQL查询来完成,因为它非常简单,并且比你在PHP中可以做的任何事情都要高效得多.
以下是在SQL中如何完成此操作的示例:
SELECT
posts.id
FROM posts
JOIN users ON posts.user_id = users.id
JOIN user_friends ON user_friends.user_id = users.id
WHERE posts.type = 'bulletin'
AND user_friends.user_id = 7
LIMIT 50;
Run Code Online (Sandbox Code Playgroud)
显然,它完全不了解您的实际数据库结构(如果有的话),因此不会按原样运行,但应该让您走上正确的道路.