[英]User activity feed (ala facebook). How to group similar activities?
[英]Group similar activities in a activity feed
在Google和Stackoverflow搜索类似问题之后,我仍然没有找到任何解决方案。
我网站的主要部分之一是活动供稿。 它显示了不同用户像Facebook一样执行的所有操作。 我将所有活动存储在MySQL表中,并使用PHP渲染视图。
我想像Facebook一样对类似的活动进行分组:
*Current situation:*
- User A uploaded a picture
- User A uploaded a picture
*Desired situation:*
- User A uploaded 2 pictures
我的活动表如下所示:
[Activities]
- i_id
- a_source
- a_type
- a_parent
- a_parent_id
- a_data (json string with meta data, photo filenames for example)
我在stackoverflow上发现了以下问题,但没有一个提供解决方案:
:编辑:
我正在寻找一种方法,希望您对如何解决这个问题有想法。
最好执行cron作业并将db中所有相同的项目分组吗? 还是在用php渲染时间上这样做更好?
我更喜欢(实时)php解决方案,但是我又不知道从哪里开始。
我只需要将来阅读的起点。
我正在寻找一种方法,希望您对如何解决这个问题有想法。
简短的答案? GROUP BY
纯粹基于假设回答? 下面:
盲目编码,因为除了situations
和表列之外,您没有提供其他任何内容:
目前似乎有意义的列的假设数据(再次,看不到任何数据):
i_id a_type
123 photo upload
123 photo upload
123 comment
使用:i_id-是用户ID a_type-是活动类型
做就是了:
SELECT a.i_id, a.a_type, COUNT(1) AS activity_count
FROM activities AS a
WHERE a.i_id = 123 -- or convert this to a parameter through PHP->PDO
GROUP BY a.i_id, a_type
上面的SQL应该给您:
i_id a_type activity_count
123 photo upload 2
最好执行cron作业并将db中所有相同的项目分组吗? 还是在用php渲染时间上这样做更好?
您是否需要汇总数据? activities
表中是否包含数百万,数以百万计的数据,还是期望有那么多数据? 您是否需要有关每个用户的活动摘要的报告? 您会主要利用表格进行报告吗? 您是否会对该表进行分区并存档数据,因此仅需要汇总数据即可用于将来的检查或报告?
我更喜欢(实时)php解决方案,但是我又不知道从哪里开始。
您可以在Google中搜索真正的PHP解决方案。 这种stackoverflow不太可能成为您的理想选择。 链接,也许。
我只需要将来阅读的起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.