如何改善此PHP / MySQL新闻提要?
让我马上说,我知道这不是最佳解决方案。我知道这很糊涂并且是功能的骇客。但这就是为什么我在这里! 这个问题/工作建立在与Facebook新闻提要的创建者Andrew Bosworth在Quora上的一些讨论之上。 我正在建立各种各样的新闻提要。它仅内置于PHP和中MySQL。 MySQL的 提要的关系模型由两个表组成。一个表用作活动日志。实际上,它的名称为activity_log。另一个表是newsfeed。这些表几乎相同。 日志的架构是activity_log(uid INT(11), activity ENUM, activity_id INT(11), title TEXT, date TIMESTAMP) ...和进料模式是newsfeed(uid INT(11), poster_uid INT(11), activity ENUM, activity_id INT(11), title TEXT, date TIMESTAMP)。 每当用户执行与新闻提要相关的操作(例如询问问题)时,它将立即记录到活动日志中。 生成新闻提要 然后每隔X分钟(此刻为5分钟,之后将更改为15-30分钟),我运行了一个cron作业,该作业执行以下脚本。该脚本循环遍历数据库中的所有用户,查找该用户所有朋友的所有活动,然后将这些活动写入新闻提要。 目前,出于性能*的原因SQL,对活动进行剔除(称为中ActivityLog::getUsersActivity())已被LIMIT 100强加。*不是我知道我在说什么。 <?php $user = new User(); $activityLog = new ActivityLog(); $friend = new Friend(); $newsFeed = new NewsFeed(); …