[英]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.