Php 针对特定于用户的活动提要的优化MySQL设计
我正在建立一个网站,它可以构建站点范围和用户特定的活动提要。我希望您能看到下面的结构,并与您分享我的解决方案是否有效的见解。这是复杂的,因为我有多种类型的用户,而这些用户现在并没有存储在一个主表中。这是因为用户的类型非常不同,我认为为用户元数据构建多个不同的表太麻烦了。此外,可以对多种类型的内容和多种类型的活动(跟踪、提交、评论等)采取行动 构建站点范围的活动提要很简单,因为所有内容都记录到主提要表中,而我只是构建了一个列表。我在MySQL中有一个主提要表,它包含简单的日志:Php 针对特定于用户的活动提要的优化MySQL设计,php,mysql,android-activity,feed,Php,Mysql,Android Activity,Feed,我正在建立一个网站,它可以构建站点范围和用户特定的活动提要。我希望您能看到下面的结构,并与您分享我的解决方案是否有效的见解。这是复杂的,因为我有多种类型的用户,而这些用户现在并没有存储在一个主表中。这是因为用户的类型非常不同,我认为为用户元数据构建多个不同的表太麻烦了。此外,可以对多种类型的内容和多种类型的活动(跟踪、提交、评论等)采取行动 构建站点范围的活动提要很简单,因为所有内容都记录到主提要表中,而我只是构建了一个列表。我在MySQL中有一个主提要表,它包含简单的日志: 活动类型; 目标实
SELECT *
FROM (`feed` as fe) LEFT OUTER JOIN `follow` as fo
ON `fe`.`feed_target_type` = `fo`.`follow_e_type`
AND fo.follow_e_id = fe.feed_target_id
WHERE `fo`.`follow_u_id` = 1 OR fe.feed_e_id = 1
AND fe.feed_e_type = 'user'
ORDER BY `fe`.`feed_timestamp` desc LIMIT 10
此查询还尝试获取用户创建的任何内容(数据记录在提要表中),实际上,默认情况下用户遵循这些内容
这个查询似乎有效,但我花了一些时间才找到它,我很确定我错过了一个更优雅的解决方案。有什么想法吗?我用活动提要创建的第一个站点有一个记录活动的通知表,然后从中提取好友操作。然而,在接下来的几个月里,它创下了数百万条记录 我正在编程的解决方案现在从单独的表中提取最新的“朋友”活动,然后按日期排序。查询在家中,如果感兴趣,可以稍后发布示例吗