簡體   English   中英

在活動供稿中將類似活動分組

[英]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上發現了以下問題,但沒有一個提供解決方案:

  1. https://stackoverflow.com/questions/5844655/how-to-group-similar-items-in-activity-feed-similar-to-facebook
  2. 用戶活動供稿(ala facebook)。 如何分組類似的活動?
  3. 如何將活動供稿中的相似項目分組

:編輯:

我正在尋找一種方法,希望您對如何解決這個問題有想法。

最好執行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不太可能成為您的理想選擇。 鏈接,也許。

我只需要將來閱讀的起點。

鏈接:在GROUP BY上

鏈接:在PDO上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM